E
- Basic type field uses, e.g. Double or Complex.public abstract class GenericField<E> extends AbstractComparativeField implements IntegerConvertor
E cast(Object l)
which converts arguments to the type-E, and also methods
E addG(E l, E r)
etc. The class provides implementations of
Object add(Object l,Object r)
which calls cast(Object l)
on both arguments and then calls addG
,
if either argument converts to null then null is returned.
It has null implementations for the logical operators.
An examples for a Field using Strings:
public class StringField3 extends GenericField<String> { private static final long serialVersionUID = 330L; @Override public String cast(Object l) throws EvaluationException { if(l instanceof String) return ((String) l); return null; } // No need for casting in individual operations @Override public String addG(String l, String r) throws EvaluationException { return l + r; } // A single method for all comparison operations @Override public Integer cmpG(String l, String r) throws EvaluationException { return l.compareTo(r); } // other methods just return null @Override public String subG(String l, String r) { return null; } @Override public String negG(String l) { return null; } @Override public String mulG(String l, String r) { return null; } @Override public String divG(String l, String r) { return null; } @Override public String modG(String l, String r) { return null; } @Override public String powG(String l, String r) { return null; } // no need to implement comparison operations le(l,r) etc. // or logical operations and(l,r), or(l,r), not(l) }
Constructor and Description |
---|
GenericField() |
Modifier and Type | Method and Description |
---|---|
java.lang.Object |
add(java.lang.Object l,
java.lang.Object r)
First calls
cast(Object) on both arguments then call the addG(E, E) . |
abstract E |
addG(E l,
E r)
Adds two elements of type E.
|
java.lang.Boolean |
and(java.lang.Object l,
java.lang.Object r)
Default implementation returns null.
|
abstract E |
cast(java.lang.Object l)
Convert the input to type E.
|
java.lang.Integer |
cmp(java.lang.Object l,
java.lang.Object r)
Compare two elements, return -1,0,1 if the comparison can be carried out, null otherwise.
|
abstract java.lang.Integer |
cmpG(E l,
E r)
Compare two objects of the same type.
|
abstract E |
convertFromInt(java.lang.Integer l)
Attempt to convert argument from an integer
|
java.lang.Integer |
convertToInt(java.lang.Object l)
Attempt to convert argument to an integer
|
abstract java.lang.Integer |
convertToIntE(E l)
If possible convert the argument to an Integer to enable integral powers.
|
java.lang.Object |
div(java.lang.Object l,
java.lang.Object r)
Divides two members of the field.
|
abstract E |
divG(E l,
E r)
Divides two elements of type E.
|
abstract E |
getOne()
Get the multiplicative identity for this field.
|
abstract E |
getZero()
Get the additive identity for this field
|
java.lang.Object |
mod(java.lang.Object l,
java.lang.Object r)
The modulus of two members of the field.
|
abstract E |
modG(E l,
E r)
Modulus of two elements of type E.
|
java.lang.Object |
mul(java.lang.Object l,
java.lang.Object r)
Multiplies two members of the field.
|
abstract E |
mulG(E l,
E r)
Multiplies two elements of type E.
|
java.lang.Object |
neg(java.lang.Object l)
The negation -x of an element.
|
abstract E |
negG(E l)
Negates an elements of type E.
|
java.lang.Boolean |
not(java.lang.Object l)
Default implementation returns null.
|
java.lang.Boolean |
or(java.lang.Object l,
java.lang.Object r)
Default implementation returns null.
|
java.lang.Object |
pow(java.lang.Object l,
java.lang.Object r)
The power operator.
|
abstract E |
powG(E l,
E r)
Raises l to the power of r
|
java.lang.Object |
sub(java.lang.Object l,
java.lang.Object r)
Subtract two members of the field.
|
abstract E |
subG(E l,
E r)
Subtracts two elements of type E.
|
public abstract E getOne()
FieldI
public abstract E getZero()
FieldI
public abstract E cast(java.lang.Object l) throws EvaluationException
l
- EvaluationException
public abstract E addG(E l, E r) throws EvaluationException
l
- lhs argumentr
- rhs argumentEvaluationException
- on errorpublic abstract E subG(E l, E r) throws EvaluationException
l
- lhs argumentr
- rhs argumentEvaluationException
- on errorpublic abstract E negG(E l) throws EvaluationException
l
- the argumentEvaluationException
- on errorpublic abstract E mulG(E l, E r) throws EvaluationException
l
- lhs argumentr
- rhs argumentEvaluationException
- on errorpublic abstract E divG(E l, E r) throws EvaluationException
l
- numeratorr
- denominatorEvaluationException
- on errorpublic abstract E modG(E l, E r) throws EvaluationException
l
- lhs argumentr
- rhs argumentEvaluationException
- on errorpublic abstract E powG(E l, E r) throws EvaluationException
l
- lhs argumentr
- rhs argumentEvaluationException
- on errorpublic abstract java.lang.Integer cmpG(E l, E r) throws EvaluationException
l
- left argumentr
- right argumentEvaluationException
public java.lang.Object add(java.lang.Object l, java.lang.Object r) throws EvaluationException
cast(Object)
on both arguments then call the addG(E, E)
.
If the result of either cast are null returns null.add
in interface FieldI
l
- left hand argumentr
- right hand argumentEvaluationException
- on errorpublic java.lang.Object sub(java.lang.Object l, java.lang.Object r) throws EvaluationException
FieldI
sub
in interface FieldI
l
- left hand argumentr
- right hand argumentEvaluationException
- on errorpublic java.lang.Object neg(java.lang.Object l) throws EvaluationException
FieldI
neg
in interface FieldI
l
- the argumentEvaluationException
- on errorpublic java.lang.Object mul(java.lang.Object l, java.lang.Object r) throws EvaluationException
FieldI
mul
in interface FieldI
l
- left hand argumentr
- right hand argumentEvaluationException
- on errorpublic java.lang.Object div(java.lang.Object l, java.lang.Object r) throws EvaluationException
FieldI
div
in interface FieldI
l
- left hand argumentr
- right hand argumentEvaluationException
- on errorpublic java.lang.Object mod(java.lang.Object l, java.lang.Object r) throws EvaluationException
FieldI
mod
in interface FieldI
l
- left hand argumentr
- right hand argumentEvaluationException
- on errorpublic java.lang.Object pow(java.lang.Object l, java.lang.Object r) throws EvaluationException
FieldI
pow
in interface FieldI
l
- left hand argumentr
- right hand argumentEvaluationException
- on errorpublic java.lang.Integer cmp(java.lang.Object l, java.lang.Object r) throws EvaluationException
AbstractComparativeField
cmp
in class AbstractComparativeField
EvaluationException
public java.lang.Boolean and(java.lang.Object l, java.lang.Object r) throws EvaluationException
and
in interface FieldI
l
- left hand argument implimentationr
- right hand argumentEvaluationException
- on errorpublic java.lang.Boolean or(java.lang.Object l, java.lang.Object r) throws EvaluationException
or
in interface FieldI
l
- left hand argumentr
- right hand argumentEvaluationException
- on errorpublic java.lang.Boolean not(java.lang.Object l) throws EvaluationException
not
in interface FieldI
l
- argumentEvaluationException
- on errorpublic abstract java.lang.Integer convertToIntE(E l) throws EvaluationException
powG(E,E)
method will be called.l
- argument to convert.EvaluationException
public java.lang.Integer convertToInt(java.lang.Object l) throws EvaluationException
IntegerConvertor
convertToInt
in interface IntegerConvertor
l
- value to convertEvaluationException
public abstract E convertFromInt(java.lang.Integer l) throws EvaluationException
IntegerConvertor
convertFromInt
in interface IntegerConvertor
l
- value to convertEvaluationException
Copyright © 2018 Singular Systems http://www.singularsys.com/jep