@Override protected <T, E> NodeInitializer extractNodeInitializer( ModelCollectionSchema<T, E> schema, NodeInitializerRegistry nodeInitializerRegistry) { ModelType<T> type = schema.getType(); Class<? super T> rawClass = type.getRawClass(); ModelType<? super T> rawCollectionType = ModelType.of(rawClass); if (TYPES.contains(rawCollectionType)) { if (schema.getType().getRawClass() == List.class) { return new ProjectionOnlyNodeInitializer( ScalarCollectionModelProjection.get( ModelTypes.list(schema.getElementType()), new ListViewFactory<E>(schema.getElementType()))); } else { return new ProjectionOnlyNodeInitializer( ScalarCollectionModelProjection.get( ModelTypes.set(schema.getElementType()), new SetViewFactory<E>(schema.getElementType()))); } } return null; }