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