|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.simantics.databoard.binding.Binding
public abstract class Binding
This class represents connection between abstract datatype and java class. A binding allows an access to an Object in scope of a datatype.
For example, IntegerBinding gives unified access to any integer class (Integer, int, MutableInteger, UnsignedInteger). There is same unification for primitive types and constructed types (record, map, array, union, variant).
You can get a hold of binding several ways:
1) Use one of the default bindings e.g. Bindings.BYTE_ARRAY
2) Create one using Datatype Bindings.getMutableBinding(Datatype)
3) Create one using Reflectiong Bindings.getBinding(Class)
4) Instantiate binding your self. e.g. new TreeMapBinding( Bindings.STRING, Bindings.STRING );
5) Sub-class one of the abstract binding classes
BooleanBinding
,
ByteBinding
,
IntegerBinding
,
LongBinding
,
FloatBinding
,
DoubleBinding
,
StringBinding
,
RecordBinding
,
ArrayBinding
,
MapBinding
,
OptionalBinding
,
UnionBinding
,
See examples/BindingExample.java
,
Facade class Bindings provices extra functionality.
Nested Class Summary | |
---|---|
static interface |
Binding.Visitor<T>
|
static interface |
Binding.Visitor1
|
Constructor Summary | |
---|---|
Binding()
|
Method Summary | ||
---|---|---|
abstract
|
accept(Binding.Visitor<T> v)
|
|
abstract void |
accept(Binding.Visitor1 v,
java.lang.Object obj)
|
|
void |
assertInstaceIsValid(java.lang.Object obj)
Assert the obj is valid data type |
|
abstract void |
assertInstaceIsValid(java.lang.Object obj,
java.util.Set<java.lang.Object> validInstances)
Assert the obj is valid data type |
|
java.lang.Object |
clone(java.lang.Object o)
Make a complete copy of a the java object. |
|
java.lang.Object |
cloneUnchecked(java.lang.Object o)
|
|
int |
compare(java.lang.Object o1,
java.lang.Object o2)
Compares its two data values for order. |
|
java.lang.Object |
createDefault()
Create a value with valid default values. |
|
java.lang.Object |
createDefaultUnchecked()
|
|
java.lang.Object |
createRandom(int seed)
Create random valid value. |
|
java.lang.Object |
createRandomUnchecked(int seed)
|
|
abstract int |
deepCompare(java.lang.Object o1,
java.lang.Object o2,
java.util.Set<IdentityPair<java.lang.Object,java.lang.Object>> compareHistory)
|
|
abstract int |
deepHashValue(java.lang.Object value,
java.util.IdentityHashMap<java.lang.Object,java.lang.Object> hashedObjects)
Calculate hash value |
|
boolean |
equals(java.lang.Object o1,
java.lang.Object o2)
Compare two Java Objects of this binding for equality. |
|
int |
hashValue(java.lang.Object value)
Calculate Hash code for a Data Value. |
|
boolean |
isImmutable()
Return true if the value is immutable. |
|
abstract boolean |
isInstance(java.lang.Object obj)
|
|
java.lang.Object |
parseValue(java.io.Reader stream,
DataValueRepository repository)
Parse data value from a text to a value instance. |
|
java.lang.Object |
parseValue(java.lang.String text,
DataValueRepository repository)
Parse data value from a text to a value instance. |
|
java.lang.Object |
parseValueDefinition(java.lang.String text)
Parse data value from a text to a value instance. |
|
void |
printValue(java.lang.Object value,
java.lang.Appendable out,
DataValueRepository valueRepository,
boolean singleLine)
Print a value to an appendable using data value notation. |
|
java.lang.String |
printValueDefinition(java.lang.Object value,
boolean singleLine)
Print a value as a data value repository. |
|
abstract void |
readFrom(Binding srcBinding,
java.lang.Object src,
java.lang.Object dst)
Read values from another object. |
|
Serializer |
serializer()
Deprecated. Instead use Bindings.getSerializerUnchecked(Binding) or SerializationScheme.getSerializerUnchecked(Binding) |
|
java.lang.String |
toString(java.lang.Object value)
|
|
Datatype |
type()
Get Value Type |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface java.util.Comparator |
---|
equals |
Constructor Detail |
---|
public Binding()
Method Detail |
---|
public Datatype type()
public abstract void accept(Binding.Visitor1 v, java.lang.Object obj)
public abstract <T> T accept(Binding.Visitor<T> v)
@Deprecated public Serializer serializer() throws RuntimeSerializerConstructionException
Bindings.getSerializerUnchecked(Binding)
or SerializationScheme.getSerializerUnchecked(Binding)
RuntimeSerializerConstructionException
public abstract boolean isInstance(java.lang.Object obj)
public boolean isImmutable()
true
value if immutablepublic abstract void readFrom(Binding srcBinding, java.lang.Object src, java.lang.Object dst) throws BindingException
srcBinding
- src
- dst
- valid object of this binding
BindingException
public void assertInstaceIsValid(java.lang.Object obj) throws BindingException
obj
- the instance
BindingException
- on invalid instancepublic abstract void assertInstaceIsValid(java.lang.Object obj, java.util.Set<java.lang.Object> validInstances) throws BindingException
obj
- the instancevalidInstances
- optional set of already validated instances
BindingException
- on invalid instancepublic java.lang.Object parseValue(java.io.Reader stream, DataValueRepository repository) throws DataTypeSyntaxError, BindingException
stream
-
BindingException
ParseException
DataTypeSyntaxError
public java.lang.Object parseValue(java.lang.String text, DataValueRepository repository) throws DataTypeSyntaxError, BindingException
text
-
BindingException
ParseException
DataTypeSyntaxError
public java.lang.Object parseValueDefinition(java.lang.String text) throws DataTypeSyntaxError, BindingException
text
-
BindingException
ParseException
DataTypeSyntaxError
public java.lang.String printValueDefinition(java.lang.Object value, boolean singleLine) throws java.io.IOException, BindingException
value
- singleLine
-
java.io.IOException
BindingException
public void printValue(java.lang.Object value, java.lang.Appendable out, DataValueRepository valueRepository, boolean singleLine) throws java.io.IOException, BindingException
value
- out
- singleLine
-
java.io.IOException
BindingException
public int hashValue(java.lang.Object value) throws BindingException
value
-
BindingException
public abstract int deepHashValue(java.lang.Object value, java.util.IdentityHashMap<java.lang.Object,java.lang.Object> hashedObjects) throws BindingException
value
- hashedObjects
- collection of already hashed object or optionally null
BindingException
public int compare(java.lang.Object o1, java.lang.Object o2) throws RuntimeBindingException
The implementor must also ensure that the relation is transitive:
((compare(x, y)>0) && (compare(y, z)>0))
implies
compare(x, z)>0
.
Finally, the implementor must ensure that compare(x, y)==0
implies that sgn(compare(x, z))==sgn(compare(y, z))
for all
z
.
The comparison function is defined at http://dev.simantics.org/index.php/Org.simantics.databoard_Manual#CompareTo_and_Equals
Note, comparing 2 different number types will not result a value comparison. Instead values have the following type precedence ByteType, IntegerType, LongType, FloatType, and the highest DoubleType.
compare
in interface java.util.Comparator<java.lang.Object>
o1
- the first object to be compared.o2
- the second object to be compared.
BindingException
- if object cannot be handled by a binding
RuntimeBindingException
public boolean equals(java.lang.Object o1, java.lang.Object o2) throws RuntimeBindingException
o1
- o2
-
RuntimeBindingException
public java.lang.Object clone(java.lang.Object o) throws AdaptException
Note, this is a generic implementation, override for better performance.
o
- to be cloned
AdapterConstructionException
AdaptException
public java.lang.Object cloneUnchecked(java.lang.Object o) throws RuntimeAdaptException
RuntimeAdaptException
public abstract int deepCompare(java.lang.Object o1, java.lang.Object o2, java.util.Set<IdentityPair<java.lang.Object,java.lang.Object>> compareHistory) throws BindingException
BindingException
public java.lang.Object createDefault() throws BindingException
BindingException
public java.lang.Object createDefaultUnchecked() throws RuntimeBindingException
RuntimeBindingException
public java.lang.Object createRandom(int seed) throws BindingException
seed
- random seed
BindingException
public java.lang.Object createRandomUnchecked(int seed) throws RuntimeBindingException
RuntimeBindingException
public java.lang.String toString(java.lang.Object value) throws BindingException
BindingException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |