X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.databoard%2Fsrc-isv%2Ftasks%2Fclass_binding.mediawiki;h=0717d0e40577721305c9116a1a96c506565089cf;hb=32901c35ff60dc510417fdf1cab088d1ab071fae;hp=ce2959444410140bfa34942b07d7e7c3bbb26317;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.databoard/src-isv/tasks/class_binding.mediawiki b/bundles/org.simantics.databoard/src-isv/tasks/class_binding.mediawiki index ce2959444..0717d0e40 100644 --- a/bundles/org.simantics.databoard/src-isv/tasks/class_binding.mediawiki +++ b/bundles/org.simantics.databoard/src-isv/tasks/class_binding.mediawiki @@ -1,98 +1,98 @@ -=Binding= -Information between databoard's datatype and Java classes are transferred using a ''[javadoc/org/simantics/databoard/binding/Binding.html Binding]''. -The type and hierarchy structure of binding is same as its repsective type and [javadoc/org/simantics/databoard/type/Datatype.html Datatype]. -As datatype has tree-structure, so does a binding. - -{| border="1" cellpadding="3" cellspacing="0" align="center" -| '''#'''||'''Type'''||'''Description''' -|- -| -||[javadoc/org/simantics/databoard/binding/Binding.java|Binding]||Base class for all Bindings -|- -| 0-5||[javadoc/org/simantics/databoard/binding/BooleanBinding.java|BooleanBinding],[javadoc/org/simantics/databoard/binding/ByteBinding.java|ByteBinding],[javadoc/org/simantics/databoard/binding/IntBinding.java|IntBinding],[javadoc/org/simantics/databoard/binding/LongBinding.java|LongBinding],[javadoc/org/simantics/databoard/binding/FloatBinding.java|FloatBinding],[javadoc/org/simantics/databoard/binding/DoubleBinding.java|DoubleBinding]||Primitive and numeric Bindings -|- -| 6||[javadoc/org/simantics/databoard/binding/StringBinding.java|StringBinding]|| String -|- -| 7||[javadoc/org/simantics/databoard/binding/RecordBinding.java|RecordBinding]|| Record -|- -| 8||[javadoc/org/simantics/databoard/binding/ArrayBinding.java|ArrayBinding]|| Array - an ordered sequence of elements of one value. -|- -| 9||[javadoc/org/simantics/databoard/binding/MapBinding.java|MapBinding]|| Map - an ''ordered'' map of keys to values. -|- -| 11||[javadoc/org/simantics/databoard/binding/UnionBinding.java|UnionBinding]|| Union -|- -| 10||[javadoc/org/simantics/databoard/binding/OptionalBinding.java|OptionalBinding]|| Optional value -|- -| 12||[javadoc/org/simantics/databoard/binding/VariantBinding.java|VariantBinding]|| Variant value -|} - -==Built-in Bindings= - -==Class Binding== -To acquire a binding, the developer can use a utility that creates one using Java reflection functions. - Binding binding = Bindings.getBinding( Double.class ); - -The Binding implementation is based on reflection or constructed from byte-code at runtime. Reflection is used if ASM library is not available. - -An automatic mechanism can create binding out of Java class, provided that certain rules are followed. - -''Record-like class:'' - class Foo { - public String name; - public Object value; - } - -''Immutable class:'' - class Foo { - private String name; - private Object value; - - public Foo(String name, Object value) { - this.name = name; - this.value = value; - } - - public String getName() { - return name; - } - - public Object getValue() { - return value; - } - - } - -''Bean-like classes:'' - class Foo { - private String name; - private Object value; - - public void setName(String name) { - this.name = name; - } - - public void setValue(Object value) { - this.value = value; - } - - public String getName() { - return name; - } - - public Object getValue() { - return value; - } - - } - -===Annotations=== -You can aid the Binding creation with annotations. - - such as @Recursive, @Optional, @Arguments. - -{| style="background-color: #e9e9e9; border: 1px solid #aaaaaa; " -| '''Class''' -|- -|} - - +=Binding= +Information between databoard's datatype and Java classes are transferred using a ''[javadoc/org/simantics/databoard/binding/Binding.html Binding]''. +The type and hierarchy structure of binding is same as its repsective type and [javadoc/org/simantics/databoard/type/Datatype.html Datatype]. +As datatype has tree-structure, so does a binding. + +{| border="1" cellpadding="3" cellspacing="0" align="center" +| '''#'''||'''Type'''||'''Description''' +|- +| -||[javadoc/org/simantics/databoard/binding/Binding.java|Binding]||Base class for all Bindings +|- +| 0-5||[javadoc/org/simantics/databoard/binding/BooleanBinding.java|BooleanBinding],[javadoc/org/simantics/databoard/binding/ByteBinding.java|ByteBinding],[javadoc/org/simantics/databoard/binding/IntBinding.java|IntBinding],[javadoc/org/simantics/databoard/binding/LongBinding.java|LongBinding],[javadoc/org/simantics/databoard/binding/FloatBinding.java|FloatBinding],[javadoc/org/simantics/databoard/binding/DoubleBinding.java|DoubleBinding]||Primitive and numeric Bindings +|- +| 6||[javadoc/org/simantics/databoard/binding/StringBinding.java|StringBinding]|| String +|- +| 7||[javadoc/org/simantics/databoard/binding/RecordBinding.java|RecordBinding]|| Record +|- +| 8||[javadoc/org/simantics/databoard/binding/ArrayBinding.java|ArrayBinding]|| Array - an ordered sequence of elements of one value. +|- +| 9||[javadoc/org/simantics/databoard/binding/MapBinding.java|MapBinding]|| Map - an ''ordered'' map of keys to values. +|- +| 11||[javadoc/org/simantics/databoard/binding/UnionBinding.java|UnionBinding]|| Union +|- +| 10||[javadoc/org/simantics/databoard/binding/OptionalBinding.java|OptionalBinding]|| Optional value +|- +| 12||[javadoc/org/simantics/databoard/binding/VariantBinding.java|VariantBinding]|| Variant value +|} + +==Built-in Bindings= + +==Class Binding== +To acquire a binding, the developer can use a utility that creates one using Java reflection functions. + Binding binding = Bindings.getBinding( Double.class ); + +The Binding implementation is based on reflection or constructed from byte-code at runtime. Reflection is used if ASM library is not available. + +An automatic mechanism can create binding out of Java class, provided that certain rules are followed. + +''Record-like class:'' + class Foo { + public String name; + public Object value; + } + +''Immutable class:'' + class Foo { + private String name; + private Object value; + + public Foo(String name, Object value) { + this.name = name; + this.value = value; + } + + public String getName() { + return name; + } + + public Object getValue() { + return value; + } + + } + +''Bean-like classes:'' + class Foo { + private String name; + private Object value; + + public void setName(String name) { + this.name = name; + } + + public void setValue(Object value) { + this.value = value; + } + + public String getName() { + return name; + } + + public Object getValue() { + return value; + } + + } + +===Annotations=== +You can aid the Binding creation with annotations. + + such as @Recursive, @Optional, @Arguments. + +{| style="background-color: #e9e9e9; border: 1px solid #aaaaaa; " +| '''Class''' +|- +|} + + ==Hand-Written Binding== \ No newline at end of file