Interface Type<T>
- Type Parameters:
T- Java type associated with this type
- All Known Implementing Classes:
TypeWrapper
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
Modifier and TypeMethodDescriptiondefault 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.Method returns ALL known fields, both explicitly declared and resolved.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.There can be only one Type with the given name, but there could be many types associated with a specific Java Class.
-
Method Details
-
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.
-
resolveJavaType
-
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:
-
getField
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
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
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
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
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
-
declareBooleanField
Method declares a primitive
booleanfield.- Parameters:
name- field namefunction- field functional interface- Returns:
- a newly created field or an existing one if already declared/resolved
-