@SuppressWarnings("unchecked")
 protected Object getModelValue(Object inValue, String columnName) {
   ModelContainerAdapter<? extends Model> modelContainerAdapter =
       FlowManager.getContainerAdapter(getTable());
   Class<? extends Model> columnClass =
       (Class<? extends Model>) modelContainerAdapter.getClassForColumn(columnName);
   ModelContainerAdapter<? extends Model> columnAdapter =
       FlowManager.getContainerAdapter(columnClass);
   if (columnAdapter != null) {
     inValue = columnAdapter.toModel(getInstance(inValue, columnClass));
   } else {
     throw new RuntimeException(
         "Column: " + columnName + "'s class needs to add the @ContainerAdapter annotation");
   }
   return inValue;
 }
  @Override
  public ModelClass toModel() {
    if (model == null && data != null) {
      model = modelContainerAdapter.toModel(this);
    }

    return model;
  }
 @Override
 public boolean exists() {
   return modelContainerAdapter.exists(this);
 }
 @Override
 public void insert() {
   modelContainerAdapter.insert(this);
 }
 @Override
 public void update() {
   modelContainerAdapter.update(this);
 }
 @Override
 public void delete() {
   modelContainerAdapter.delete(this);
 }
 @Override
 public void save() {
   modelContainerAdapter.save(this);
 }