Interface Type<T>
-
- Type Parameters:
T- Java type associated with this type
- All Known Implementing Classes:
TypeWrapper
public interface Type<T> extends Named, Copyable<Type<T>>
An engine's internal type which is assigned to every fact before it gets into the session's working memory. It allows for dynamic, real-time field declarations either as functional interfaces or via the Java Reflection API.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default TypeFielddeclareBooleanField(String name, Predicate<T> function)Method declares a primitivebooleanfield.default TypeFielddeclareDoubleField(String name, ToDoubleFunction<T> function)Method declares a primitivedoublefield.<V> TypeFielddeclareField(String name, Class<V> type, Function<T,V> function)Field declaration with aFunctionas value reader.default TypeFielddeclareIntField(String name, ToIntFunction<T> function)Method declares a primitiveintfield.default TypeFielddeclareLongField(String name, ToLongFunction<T> function)Method declares a primitivelongfield.Collection<TypeField>getDeclaredFields()Method returns ALL known fields, both explicitly declared and resolved.TypeFieldgetField(String name)Returns a declared field with the given name.intgetId()Each type is assigned a unique auto-increment int identifier which developers can use in SPI implementations, for example in sharding/partitioning data collections.StringgetJavaType()There can be only one Type with the given name, but there could be many types associated with a specific Java Class.Class<T>resolveJavaType()
-
-
-
Method Detail
-
getId
int getId()
Each type is assigned a unique auto-increment int identifier which developers can use in SPI implementations, for example in sharding/partitioning data collections.
- Returns:
- unique type identifier.
-
getJavaType
String getJavaType()
There can be only one Type with the given name, but there could be many types associated with a specific Java Class. This method returns the associated Java type.
- Returns:
- name of the Java Class associated with the type.
-
getDeclaredFields
Collection<TypeField> getDeclaredFields()
Method returns ALL known fields, both explicitly declared and resolved.
- Returns:
- Collection of declared fields
- See Also:
TypeField
-
getField
TypeField getField(String name)
Returns a declared field with the given name. If no such field was explicitly declared, an attempt will be made to resolve the respective field/getter of the declared Java class. If no such field or getter is found, the method will throw
IllegalArgumentExceptionEmpty field name has a special meaning of the
"this"value, i.e. such field's values represent the type's instances themself.- Parameters:
name- field name or empty string if the field denotes the type'sthisvalue- Returns:
- declared or resolved field
- Throws:
IllegalArgumentException- if no field with such name could be found or resolved
-
declareField
<V> TypeField declareField(String name, Class<V> type, Function<T,V> function)
Field declaration with a
Functionas value reader.- Type Parameters:
V- field value generic type- Parameters:
name- field nametype- field value classfunction- the function that will be used to read field's value- Returns:
- a newly created field or an existing one if already declared/resolved
-
declareIntField
default TypeField declareIntField(String name, ToIntFunction<T> function)
Method declares a primitive
intfield.- Parameters:
name- field namefunction- field functional interface- Returns:
- a newly created field or an existing one if already declared/resolved
-
declareLongField
default TypeField declareLongField(String name, ToLongFunction<T> function)
Method declares a primitive
longfield.- Parameters:
name- field namefunction- field functional interface- Returns:
- a newly created field or an existing one if already declared/resolved
-
declareDoubleField
default TypeField declareDoubleField(String name, ToDoubleFunction<T> function)
Method declares a primitive
doublefield.- Parameters:
name- field namefunction- field functional interface- Returns:
- a newly created field or an existing one if already declared/resolved
-
-