Difference between revisions of "ExecutionEngine DataTypes"

From Gcube Wiki
Jump to: navigation, search
(New page: =Overview= =Supported data types= *BooleanClass *:A boolean object type (java.lang.Boolean) *BooleanPrimitive *:A boolean primitive type (boolean) *DoubleClass *:A double object type (java...)
 
(Highlights)
Line 30: Line 30:
 
*:A multidimensional array of one of the above types
 
*:A multidimensional array of one of the above types
 
=Highlights=
 
=Highlights=
 +
*Wrapped and unwrapped types
 +
*:The reason of having for primitive types also the wrapped version of them (Integer primitive and integer Class), is mainly due to Java's reflection API and the way these Java types are distinguished from one another. So should for example part of the execution plan needs to make a call to some Java object's method through reflection, then the exact type as defined in the signature of that method must be available. If the method's signature requires an int and it is provided with an Integer, an error will occur.
 +
*Convertables
 +
*:This Data Type category provided the biggest flexibility concerning the value that can be passed to an element invoked by the [[ExecutionEngine]] or returned to it by an invocation when the involved invokable is a POJO. But this also comes with the toll of having to produce the respective Converter utility for each object that will be passed back to the [[ExecutionEngine]] or be delivered by it. And this Converter utility will have to implement an interface that is defined by the [[ExecutionEngine]] library meaning that the portability of the package is hurt. Even so, the capability is offered in cases where portability is not of great importance.

Revision as of 19:00, 31 January 2010

Overview

Supported data types

  • BooleanClass
    A boolean object type (java.lang.Boolean)
  • BooleanPrimitive
    A boolean primitive type (boolean)
  • DoubleClass
    A double object type (java.lang.Double)
  • DoublePrimitive
    A double primitive type (double)
  • FloatClass
    A float object type (java.lang.Float)
  • FloatPrimitive
    A float primitive type (float)
  • IntegerClass
    An integer object type (java.lang.Integer)
  • IntegerPrimitive
    An integer primitive type (int)
  • String
    A String object type (java.lang.String)
  • ResultSet
    An IProxyLocator type capable of identifying a result set
  • RecordStore
    An IStoreLocator type capable of identifying a result set that is stored in some record store
  • Convertable
    A type capable of storing information on a type that is not directly supported but can be transformed into a string serialization from an object and then back into the object using some converter object
  • Reflectable
    A type capable of storing information on named data types that can be used to populate or be populated from an object that follows the generic get/set pattern on member variables of the respective names
  • Array
    A multidimensional array of one of the above types

Highlights

  • Wrapped and unwrapped types
    The reason of having for primitive types also the wrapped version of them (Integer primitive and integer Class), is mainly due to Java's reflection API and the way these Java types are distinguished from one another. So should for example part of the execution plan needs to make a call to some Java object's method through reflection, then the exact type as defined in the signature of that method must be available. If the method's signature requires an int and it is provided with an Integer, an error will occur.
  • Convertables
    This Data Type category provided the biggest flexibility concerning the value that can be passed to an element invoked by the ExecutionEngine or returned to it by an invocation when the involved invokable is a POJO. But this also comes with the toll of having to produce the respective Converter utility for each object that will be passed back to the ExecutionEngine or be delivered by it. And this Converter utility will have to implement an interface that is defined by the ExecutionEngine library meaning that the portability of the package is hurt. Even so, the capability is offered in cases where portability is not of great importance.