package cdr.forms;
import gov.loc.mets.MDTYPEType;
import gov.loc.mets.MdSecType;
import gov.loc.mets.MdWrapType;
import gov.loc.mets.MetsFactory;
import gov.loc.mets.XmlDataType1;
import gov.loc.mods.mods.AbstractDefinition;
import gov.loc.mods.mods.DateDefinition;
import gov.loc.mods.mods.DateEncodingAttributeDefinition;
import gov.loc.mods.mods.MODSFactory;
import gov.loc.mods.mods.MODSPackage;
import gov.loc.mods.mods.ModsDefinition;
import gov.loc.mods.mods.OriginInfoDefinition;
import gov.loc.mods.mods.PhysicalDescriptionDefinition;
import gov.loc.mods.mods.StringPlusAuthorityPlusType;
import gov.loc.mods.mods.StringPlusSupplied;
import gov.loc.mods.mods.TitleInfoDefinition;
import gov.loc.mods.mods.XsString;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SupplementalObject {
private DepositFile depositFile;
private String title;
private String medium;
private String dimensions;
private Date date;
private String narrative;
public DepositFile getDepositFile() {
return depositFile;
}
public void setDepositFile(DepositFile depositFile) {
this.depositFile = depositFile;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getMedium() {
return medium;
}
public void setMedium(String medium) {
this.medium = medium;
}
public String getDimensions() {
return dimensions;
}
public void setDimensions(String dimensions) {
this.dimensions = dimensions;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public String getNarrative() {
return narrative;
}
public void setNarrative(String narrative) {
this.narrative = narrative;
}
public ModsDefinition getDescriptiveMetadata() {
ModsDefinition modsDefinition = MODSFactory.eINSTANCE.createModsDefinition();
// Title
TitleInfoDefinition titleInfo = MODSFactory.eINSTANCE.createTitleInfoDefinition();
modsDefinition.getTitleInfo().add(titleInfo);
XsString title = MODSFactory.eINSTANCE.createXsString();
title.setValue(this.getTitle());
titleInfo.getTitle().add(title);
// Year
OriginInfoDefinition originInfo = MODSFactory.eINSTANCE.createOriginInfoDefinition();
modsDefinition.getOriginInfo().add(originInfo);
DateDefinition dateCreated = MODSFactory.eINSTANCE.createDateDefinition();
dateCreated.setEncoding(DateEncodingAttributeDefinition.ISO8601);
dateCreated.setValue(new SimpleDateFormat("yyyy").format(this.getDate()));
originInfo.getDateCreated().add(dateCreated);
// Material and dimensions
PhysicalDescriptionDefinition physicalDescription = MODSFactory.eINSTANCE.createPhysicalDescriptionDefinition();
modsDefinition.getPhysicalDescription().add(physicalDescription);
StringPlusAuthorityPlusType materialForm = MODSFactory.eINSTANCE.createStringPlusAuthorityPlusType();
materialForm.setType("material");
materialForm.setValue(this.getMedium());
physicalDescription.getForm().add(materialForm);
StringPlusSupplied dimensionsExtent = MODSFactory.eINSTANCE.createStringPlusSupplied();
dimensionsExtent.setValue(this.getDimensions());
physicalDescription.getExtent().add(dimensionsExtent);
// Narrative
if (this.getNarrative() != null && this.getNarrative().trim().length() > 0) {
AbstractDefinition narrative = MODSFactory.eINSTANCE.createAbstractDefinition();
narrative.setValue(this.getNarrative());
modsDefinition.getAbstract().add(narrative);
}
return modsDefinition;
}
}