private DatasetField copy(Object version, DatasetFieldCompoundValue parent) { DatasetField dsf = new DatasetField(); dsf.setDatasetFieldType(datasetFieldType); if (version != null) { if (version.getClass().getName().equals("edu.harvard.iq.dataverse.DatasetVersion")) { dsf.setDatasetVersion((DatasetVersion) version); } else { dsf.setTemplate((Template) version); } } dsf.setParentDatasetFieldCompoundValue(parent); dsf.setControlledVocabularyValues(controlledVocabularyValues); for (DatasetFieldValue dsfv : datasetFieldValues) { dsf.getDatasetFieldValues().add(dsfv.copy(dsf)); } for (DatasetFieldCompoundValue compoundValue : datasetFieldCompoundValues) { dsf.getDatasetFieldCompoundValues().add(compoundValue.copy(dsf)); } return dsf; }
public static DatasetField createNewEmptyDatasetField(DatasetFieldType dsfType, Object dsv) { DatasetField dsfv = createNewEmptyDatasetField(dsfType); // TODO - a better way to handle this? if (dsv.getClass().getName().equals("edu.harvard.iq.dataverse.DatasetVersion")) { dsfv.setDatasetVersion((DatasetVersion) dsv); } else { dsfv.setTemplate((Template) dsv); } return dsfv; }