in src/main/java/com/microsoft/spring/data/gremlin/conversion/source/GremlinSourceGraphReader.java [34:61]
public <T> T read(@NonNull Class<T> type, @NonNull MappingGremlinConverter converter,
@NonNull GremlinSource<T> source) {
if (!(source instanceof GremlinSourceGraph)) {
throw new GremlinUnexpectedSourceTypeException("Should be instance of GremlinSourceGraph");
}
final GremlinSourceGraph<T> graphSource = (GremlinSourceGraph<T>) source;
final T entity = GremlinUtils.createInstance(type);
final ConvertingPropertyAccessor accessor = converter.getPropertyAccessor(entity);
final GremlinPersistentEntity persistentEntity = converter.getPersistentEntity(type);
for (final Field field : FieldUtils.getAllFields(type)) {
final PersistentProperty property = persistentEntity.getPersistentProperty(field.getName());
if (property == null) {
continue;
}
if ((field.getName().equals(PROPERTY_ID) || field.getAnnotation(Id.class) != null)) {
accessor.setProperty(property, super.getGremlinSourceId(graphSource));
} else if (field.isAnnotationPresent(VertexSet.class)) {
accessor.setProperty(property, readEntitySet(graphSource.getVertexSet(), converter));
} else if (field.isAnnotationPresent(EdgeSet.class)) {
accessor.setProperty(property, readEntitySet(graphSource.getEdgeSet(), converter));
}
}
return entity;
}