package org.gcube.portlets.user.geoportaldataviewer.shared; import java.util.ArrayList; import java.util.List; import org.gcube.application.geoportalcommon.shared.geoportal.materialization.innerobject.FilesetDV; import org.gcube.application.geoportalcommon.shared.geoportal.materialization.innerobject.PayloadDV; import org.gcube.portlets.widgets.mpformbuilder.shared.metadata.CategoryWrapper; import org.gcube.portlets.widgets.mpformbuilder.shared.metadata.MetaDataProfileBean; import org.gcube.portlets.widgets.mpformbuilder.shared.metadata.MetadataFieldWrapper; /** * The Class MetaDataProfileBeanExt. * * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it * * Nov 23, 2022 */ public class MetaDataProfileBeanExt extends MetaDataProfileBean implements Cloneable { /** * */ private static final long serialVersionUID = 2518128223147908835L; private List listFileset = null; /** * Instantiates a new meta data profile bean ext. */ public MetaDataProfileBeanExt() { super(); } /** * Instantiates a new meta data profile bean ext. * * @param type the type * @param title the title * @param metadataFields the metadata fields * @param categories the categories */ public MetaDataProfileBeanExt(String type, String title, List metadataFields, List categories) { super(type, title, metadataFields, categories); } /** * Gets the list fileset. * * @return the list fileset */ public List getListFileset() { if (listFileset == null) listFileset = new ArrayList(); return listFileset; } /** * Sets the list fileset. * * @param listFileset the new list fileset */ public void setListFileset(List listFileset) { this.listFileset = listFileset; } @Override protected MetaDataProfileBeanExt clone() throws CloneNotSupportedException { MetaDataProfileBeanExt clonedMDPBE = new MetaDataProfileBeanExt(); clonedMDPBE.setTitle(this.getTitle()); clonedMDPBE.setType(this.getType()); ArrayList newListFileset = new ArrayList(); for (FilesetDV filesetDV : this.getListFileset()) { FilesetDV newFileset = new FilesetDV(); for (PayloadDV payloadDV : filesetDV.getListPayload()) { PayloadDV newPayloadDV = new PayloadDV(); newPayloadDV.setLink(payloadDV.getLink()); newPayloadDV.setMimetype(payloadDV.getMimetype()); newPayloadDV.setName(payloadDV.getName()); newPayloadDV.setStorageID(payloadDV.getStorageID()); newFileset.addPayloadDV(newPayloadDV); } newListFileset.add(newFileset); } clonedMDPBE.setListFileset(newListFileset); ArrayList newListMetadataFieldWrapper = new ArrayList(); for (MetadataFieldWrapper mfw : this.getMetadataFields()) { MetadataFieldWrapper newMfw = new MetadataFieldWrapper(); newMfw.setAsGroup(mfw.getAsGroup()); newMfw.setAsTag(mfw.getAsTag()); newMfw.setCurrentValue(mfw.getCurrentValue()); newMfw.setDefaultValue(mfw.getDefaultValue()); newMfw.setFieldId(mfw.getFieldId()); newMfw.setFieldName(mfw.getFieldName()); newMfw.setFieldNameFromCategory(mfw.getFieldNameFromCategory()); newMfw.setMandatory(mfw.getMandatory()); newMfw.setMaxOccurs(mfw.getMaxOccurs()); newMfw.setMultiSelection(mfw.isMultiSelection()); newMfw.setNote(mfw.getNote()); newMfw.setOwnerCategory(mfw.getOwnerCategory()); newMfw.setType(mfw.getType()); newMfw.setValidator(mfw.getValidator()); newMfw.setVocabulary(mfw.getVocabulary()); newListMetadataFieldWrapper.add(newMfw); } clonedMDPBE.setMetadataFields(newListMetadataFieldWrapper); return clonedMDPBE; } @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append("MetaDataProfileBeanExt [getType()="); builder.append(getType()); builder.append(", getTitle()="); builder.append(getTitle()); builder.append(", getMetadataFields()="); builder.append(getMetadataFields()); builder.append("]"); return builder.toString(); } }