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()
FieldIpublic abstract E getZero()
FieldIpublic abstract E cast(java.lang.Object l) throws EvaluationException
l - EvaluationExceptionpublic 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 argumentEvaluationExceptionpublic 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 FieldIl - left hand argumentr - right hand argumentEvaluationException - on errorpublic java.lang.Object sub(java.lang.Object l,
java.lang.Object r)
throws EvaluationException
FieldIsub in interface FieldIl - left hand argumentr - right hand argumentEvaluationException - on errorpublic java.lang.Object neg(java.lang.Object l)
throws EvaluationException
FieldIneg in interface FieldIl - the argumentEvaluationException - on errorpublic java.lang.Object mul(java.lang.Object l,
java.lang.Object r)
throws EvaluationException
FieldImul in interface FieldIl - left hand argumentr - right hand argumentEvaluationException - on errorpublic java.lang.Object div(java.lang.Object l,
java.lang.Object r)
throws EvaluationException
FieldIdiv in interface FieldIl - left hand argumentr - right hand argumentEvaluationException - on errorpublic java.lang.Object mod(java.lang.Object l,
java.lang.Object r)
throws EvaluationException
FieldImod in interface FieldIl - left hand argumentr - right hand argumentEvaluationException - on errorpublic java.lang.Object pow(java.lang.Object l,
java.lang.Object r)
throws EvaluationException
FieldIpow in interface FieldIl - left hand argumentr - right hand argumentEvaluationException - on errorpublic java.lang.Integer cmp(java.lang.Object l,
java.lang.Object r)
throws EvaluationException
AbstractComparativeFieldcmp in class AbstractComparativeFieldEvaluationExceptionpublic java.lang.Boolean and(java.lang.Object l,
java.lang.Object r)
throws EvaluationException
and in interface FieldIl - 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 FieldIl - left hand argumentr - right hand argumentEvaluationException - on errorpublic java.lang.Boolean not(java.lang.Object l)
throws EvaluationException
not in interface FieldIl - argumentEvaluationException - on errorpublic abstract java.lang.Integer convertToIntE(E l) throws EvaluationException
powG(E,E)
method will be called.l - argument to convert.EvaluationExceptionpublic java.lang.Integer convertToInt(java.lang.Object l)
throws EvaluationException
IntegerConvertorconvertToInt in interface IntegerConvertorl - value to convertEvaluationExceptionpublic abstract E convertFromInt(java.lang.Integer l) throws EvaluationException
IntegerConvertorconvertFromInt in interface IntegerConvertorl - value to convertEvaluationExceptionCopyright © 2018 Singular Systems http://www.singularsys.com/jep