public interface JavaTypeMapper extends HGGraphHolder
A JavaTypeMapper
is used to create HyperGraphDB type out of Java classes and
to provide appropriate run-time representations.
When the type an atom of an unknown Java class is first requested, the type system must
create an appropriate HyperGraphDB type using Java reflection on the class. The HyperGraphDB
type should be portable and potentially usable from other languages such as C++. For example
a plain Java bean is usually translated into the general RecordType
.
The HyperGraphDB type, being general, doesn't have to necessarily create objects of the original Java class. In other words
Modifier and Type | Method and Description |
---|---|
HGAtomType |
defineHGType(Class<?> javaClass,
HGHandle typeHandle)
Create a new HyperGraphDB type for the given Java class.
|
HGAtomType |
getJavaBinding(HGHandle typeHandle,
HGAtomType hgType,
Class<?> javaClass)
Create a type wrapper for a given raw HyperGraphDB type.
|
setHyperGraph
HGAtomType defineHGType(Class<?> javaClass, HGHandle typeHandle)
Create a new HyperGraphDB type for the given Java class. The HGHandle
of the type pre-created and provided as a parameter.
This method should return a brand new HGAtomType
that will subsequently
be saved as a type atom with handle typeHandle
and associated with
the javaClass
class. The method should return null
in
case it cannot (or it determines that it should not) create a HGAtomType
.
In the case the JavaTypeFactory will move on to try the next of the registered
type mappers.
javaClass
- typeHandle
- HGAtomType
corresponding to the passed in Java
class or null
if such a type could not be created.HGAtomType getJavaBinding(HGHandle typeHandle, HGAtomType hgType, Class<?> javaClass)
Create a type wrapper for a given raw HyperGraphDB type. The type wrapper should work with the regular Java runtime instance of an atom and use the underlying HG type for actual storage and retrieval.
typeHandle
- The handle of the type being wrapped.hgType
- The HyperGraphDB type instance to be wrappedjavaClass
- The Java class corresponding to this HyperGraphDB type.null
ifCopyright © 2015. All rights reserved.