@@ -0,0 +1,2174 @@
+package hex.schemas;%0A%0Aimport hex.deeplearning.DeepLearningModel;%0Aimport static hex.deeplearning.DeepLearningModel.prepareDataInfo;%0Aimport water.Key;%0Aimport water.api.ModelOutputSchema;%0Aimport water.api.ModelSchema;%0Aimport water.util.BeanUtils;%0A%0Apublic class DeepLearningModelV2 extends ModelSchema%3CDeepLearningModel, DeepLearningModel.DeepLearningParameters, DeepLearningModel.DeepLearningOutput, DeepLearningModelV2%3E %7B%0A%0A  public static final class DeepLearningModelOutputV2 extends ModelOutputSchema%3CDeepLearningModel.DeepLearningOutput, DeepLearningModelOutputV2%3E %7B%0A    //FIXME%0A    //add output fields%0A%0A    @Override public DeepLearningModel.DeepLearningOutput createImpl() %7B%0A      DeepLearningModel.DeepLearningOutput impl = new DeepLearningModel.DeepLearningOutput();%0A      BeanUtils.copyProperties(impl, this, BeanUtils.FieldNaming.DEST_HAS_UNDERSCORES);%0A      return impl;%0A    %7D%0A%0A    // Version&Schema-specific filling from the handler%0A    @Override public DeepLearningModelOutputV2 fillFromImpl( DeepLearningModel.DeepLearningOutput impl) %7B%0A      BeanUtils.copyProperties(this, impl, BeanUtils.FieldNaming.ORIGIN_HAS_UNDERSCORES);%0A      return this;%0A    %7D%0A%0A%0A  %7D // DeepLearningModelOutputV2%0A%0A  // TOOD: I think we can implement the following two in ModelSchema, using reflection on the type parameters.%0A  public DeepLearningV2.DeepLearningParametersV2 createParametersSchema() %7B return new DeepLearningV2.DeepLearningParametersV2(); %7D%0A  public DeepLearningModelOutputV2 createOutputSchema() %7B return new DeepLearningModelOutputV2(); %7D%0A%0A  //==========================%0A  // Custom adapters go here%0A%0A  // Version&Schema-specific filling into the impl%0A  @Override public DeepLearningModel createImpl() %7B%0A    DeepLearningV2.DeepLearningParametersV2 p = ((DeepLearningV2.DeepLearningParametersV2)this.parameters);%0A    DeepLearningModel.DeepLearningParameters parms = p.createImpl();%0A    return new DeepLearningModel(Key.make() /*dest*/, null /*Job*/, p.src, prepareDataInfo(parms), parms, null);%0A  %7D%0A%0A  // Version&Schema-specific filling from the impl%0A  @Override public DeepLearningModelV2 fillFromImpl( DeepLearningModel kmm ) %7B%0A    return super.fillFromImpl(kmm);%0A  %7D%0A%7D%0A

Add DeepLearningModelV2 class.