public T read()

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;
    }