public class ClassInfo extends Object
Modifier and Type | Method and Description |
---|---|
Collection<ClassInfo> |
allSubclasses() |
Collection<AnnotationInfo> |
annotations() |
AnnotationsInfo |
annotationsInfo() |
Set<FieldInfo> |
candidateRelationshipFields(String relationshipName,
String relationshipDirection,
boolean strict)
Finds all relationship fields with a specific name and direction from the ClassInfo's relationship fields
|
boolean |
containsIndexes() |
List<ClassInfo> |
directSubclasses() |
ClassInfo |
directSuperclass() |
FieldsInfo |
fieldsInfo() |
List<FieldInfo> |
findFields(Class<?> fieldType)
Find all FieldInfos for the specified ClassInfo whose type matches the supplied fieldType
|
List<FieldInfo> |
findFields(String annotation)
Find all FieldInfos for the specified ClassInfo which have the specified annotation
|
List<FieldInfo> |
findIterableFields()
|
List<FieldInfo> |
findIterableFields(Class iteratedType)
Finds all fields whose type is equivalent to Array<X> or assignable from Iterable<X>
where X is the generic parameter type of the Array or Iterable
|
List<FieldInfo> |
findIterableFields(Class iteratedType,
String relationshipType,
String relationshipDirection,
boolean strict)
Finds all fields whose type is equivalent to Array<X> or assignable from Iterable<X>
where X is the generic parameter type of the Array or Iterable and the relationship type backing this iterable is "relationshipType"
|
Collection<CompositeIndex> |
getCompositeIndexes() |
FieldInfo |
getEndNodeReader()
Return a FieldInfo for the EndNode of a RelationshipEntity
|
Field |
getField(FieldInfo fieldInfo) |
FieldInfo |
getFieldInfo(String propertyName) |
Collection<FieldInfo> |
getIndexFields() |
Method |
getMethod(MethodInfo methodInfo)
Returns the Method corresponding to the supplied MethodInfo as declared by the class represented by this ClassInfo
|
Function<Object,Optional<Object>> |
getPrimaryIndexOrIdReader() |
FieldInfo |
getStartNodeReader()
Return a FieldInfo for the StartNode of a RelationshipEntity
|
Class<?> |
getUnderlyingClass()
Get the underlying class represented by this ClassInfo
|
FieldInfo |
getVersionField() |
boolean |
hasIdentityField() |
boolean |
hasPrimaryIndexField() |
boolean |
hasRequiredFields()
Returns if the class as fields annotated with @Required annotation
|
boolean |
hasVersionField() |
FieldInfo |
identityField()
The identity field is a field annotated with @NodeId, or if none exists, a field
of type Long called 'id'
|
FieldInfo |
identityFieldOrNull() |
IdStrategy |
idStrategy() |
Class<? extends IdStrategy> |
idStrategyClass() |
boolean |
isAbstract() |
boolean |
isEnum() |
boolean |
isInterface() |
boolean |
isRelationshipEntity() |
boolean |
isTransient() |
FieldInfo |
labelFieldOrNull()
The label field is an optional field annotated with @Labels.
|
String |
name() |
String |
neo4jName() |
MethodInfo |
postLoadMethodOrNull() |
FieldInfo |
primaryIndexField() |
FieldInfo |
propertyField(String propertyName)
Finds the property field with a specific property name from the ClassInfo's property fields
Note that this method does not allow for property names with differing case.
|
FieldInfo |
propertyFieldByName(String propertyName)
Finds the property field with a specific field name from the ClassInfo's property fields
|
Collection<FieldInfo> |
propertyFields()
A property field is any field annotated with @Property, or any field that can be mapped to a
node property.
|
Object |
readPrimaryIndexValueOf(Object entity)
Reads the value of the entity's primary index field if any.
|
void |
registerIdGenerationStrategy(IdStrategy strategy) |
FieldInfo |
relationshipField(String relationshipName)
Finds the relationship field with a specific name from the ClassInfo's relationship fields
|
FieldInfo |
relationshipField(String relationshipName,
String relationshipDirection,
boolean strict)
Finds the relationship field with a specific name and direction from the ClassInfo's relationship fields
|
FieldInfo |
relationshipFieldByName(String fieldName)
Finds the relationship field with a specific property name from the ClassInfo's relationship fields
|
Collection<FieldInfo> |
relationshipFields()
A relationship field is any field annotated with @Relationship, or any field that cannot be mapped to a
node property.
|
Collection<FieldInfo> |
requiredFields() |
Collection<String> |
staticLabels()
Retrieves the static labels that are applied to nodes in the database.
|
public ClassInfo(Class<?> cls)
public String name()
public ClassInfo directSuperclass()
public Collection<String> staticLabels()
Retrieves the static labels that are applied to nodes in the database. If the class' instances are persisted by a relationship instead of a node then this method returns an empty collection.
Note that this method returns only the static labels. A node entity instance may declare additional labels
managed at runtime by using the @Labels annotation on a collection field, therefore the full set of labels to be
mapped to a node will be the static labels, in addition to any labels declared by the backing field of an
Labels
annotation.
Collection
of all the static labels that apply to the node or an empty list if there aren't
any, never null
public String neo4jName()
public Collection<ClassInfo> allSubclasses()
public Collection<AnnotationInfo> annotations()
public boolean isInterface()
public boolean isEnum()
public AnnotationsInfo annotationsInfo()
public FieldsInfo fieldsInfo()
public FieldInfo identityFieldOrNull()
public FieldInfo identityField()
FieldInfo
object representing the identity field never null
MappingException
- if no identity field can be foundpublic boolean hasIdentityField()
public FieldInfo labelFieldOrNull()
FieldInfo
object representing the label field. Optionally null
public boolean isRelationshipEntity()
public Collection<FieldInfo> propertyFields()
InvalidPropertyFieldException
- if the recognized property fields contain a field that is not
actually persistable as property.public FieldInfo propertyField(String propertyName)
propertyName
- the propertyName of the field to findInvalidPropertyFieldException
- if the recognized property fields contain a field that is not
actually persistable as property.public FieldInfo propertyFieldByName(String propertyName)
propertyName
- the propertyName of the field to findpublic Collection<FieldInfo> relationshipFields()
public FieldInfo relationshipField(String relationshipName)
relationshipName
- the relationshipName of the field to findpublic FieldInfo relationshipField(String relationshipName, String relationshipDirection, boolean strict)
relationshipName
- the relationshipName of the field to findrelationshipDirection
- the direction of the relationshipstrict
- if true, does not infer relationship type but looks for it in the @Relationship annotation. Null if missing. If false, infers relationship type from FieldInfopublic Set<FieldInfo> candidateRelationshipFields(String relationshipName, String relationshipDirection, boolean strict)
relationshipName
- the relationshipName of the field to findrelationshipDirection
- the direction of the relationshipstrict
- if true, does not infer relationship type but looks for it in the @Relationship annotation. Null if missing. If false, infers relationship type from FieldInfopublic FieldInfo relationshipFieldByName(String fieldName)
fieldName
- the name of the fieldpublic Method getMethod(MethodInfo methodInfo)
methodInfo
- the MethodInfo used to obtain the Methodpublic List<FieldInfo> findFields(Class<?> fieldType)
public List<FieldInfo> findFields(String annotation)
public List<FieldInfo> findIterableFields(Class iteratedType)
iteratedType
- the type of iterableList
of MethodInfo
, never null
public List<FieldInfo> findIterableFields(Class iteratedType, String relationshipType, String relationshipDirection, boolean strict)
iteratedType
- the type of iterablerelationshipType
- the relationship typerelationshipDirection
- the relationship directionstrict
- if true, does not infer relationship type but looks for it in the @Relationship annotation. Null if missing. If false, infers relationship type from FieldInfoList
of MethodInfo
, never null
public boolean isTransient()
public boolean isAbstract()
public Class<?> getUnderlyingClass()
public boolean containsIndexes()
public Collection<FieldInfo> getIndexFields()
FieldInfo
s representing the Indexed fields in this class.public Collection<CompositeIndex> getCompositeIndexes()
public FieldInfo primaryIndexField()
public boolean hasPrimaryIndexField()
public IdStrategy idStrategy()
public Class<? extends IdStrategy> idStrategyClass()
public void registerIdGenerationStrategy(IdStrategy strategy)
public MethodInfo postLoadMethodOrNull()
public FieldInfo getEndNodeReader()
public FieldInfo getStartNodeReader()
public boolean hasRequiredFields()
public Collection<FieldInfo> requiredFields()
public boolean hasVersionField()
public FieldInfo getVersionField()
public Object readPrimaryIndexValueOf(Object entity)
entity
- Copyright © 2015–2020 Neo Technology, Inc.. All rights reserved.