Package org.evrete.api
Interface TypeResolver
-
- All Superinterfaces:
Copyable<TypeResolver>
- All Known Implementing Classes:
TypeResolverWrapper
public interface TypeResolver extends Copyable<TypeResolver>
TypeResolver provides dynamic mapping of Java types to engine's internal
Type. It is particularly useful when developers have to deal with XML or JSON objects.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default <T> Type<T>declare(Class<T> type)Declares and registers newTypewith the given Java class name.<T> Type<T>declare(String typeName, Class<T> javaType)Declares and registers newTypewith the given type name and Java class<T> Type<T>declare(String typeName, String javaType)Declares and registers newTypewith the given type name and Java class name.Collection<Type<?>>getKnownTypes()default <T> Type<T>getOrDeclare(Class<T> cl)default <T> Type<T>getOrDeclare(String typeName)default <T> Type<T>getOrDeclare(String typeName, Class<T> javaType)default <T> Type<T>getOrDeclare(String typeName, String javaType)<T> Type<T>getType(int typeId)<T> Type<T>getType(String name)<T> Type<T>resolve(Object o)voidwrapType(TypeWrapper<?> typeWrapper)
-
-
-
Method Detail
-
getType
<T> Type<T> getType(String name)
- Type Parameters:
T- type parameter- Parameters:
name- type's declared name- Returns:
- existing
Typeornullif not found
-
getType
<T> Type<T> getType(int typeId)
- Type Parameters:
T- type parameter- Parameters:
typeId- type id- Returns:
- existing
Type - Throws:
NoSuchElementException- if not found
-
getKnownTypes
Collection<Type<?>> getKnownTypes()
-
wrapType
void wrapType(TypeWrapper<?> typeWrapper)
-
declare
default <T> Type<T> declare(Class<T> type)
Declares and registers new
Typewith the given Java class name. The name of the resulting type will beClass.getName()- Type Parameters:
T- java class type parameter- Parameters:
type- Java class- Returns:
- new internal type
- Throws:
IllegalStateException- if such type name has been already declared
-
declare
<T> Type<T> declare(String typeName, Class<T> javaType)
Declares and registers new
Typewith the given type name and Java class- Type Parameters:
T- java class type parameter- Parameters:
typeName- name of the typejavaType- Java class- Returns:
- new internal type
- Throws:
IllegalStateException- if such type name has been already declared
-
declare
<T> Type<T> declare(String typeName, String javaType)
Declares and registers new
Typewith the given type name and Java class name. The existence of the corresponding Java class will be checked lazily, when the engine requires access to the class's properties.- Type Parameters:
T- java class type parameter- Parameters:
typeName- name of the typejavaType- Java class- Returns:
- new internal type
- Throws:
IllegalStateException- if such type name has been already declared
-
-