package com.revolsys.record.io.format.esri.gdb.xml.model; import java.util.ArrayList; import java.util.List; import com.revolsys.record.io.format.esri.gdb.xml.model.enums.WorkspaceType; public class WorkspaceDefinition implements Cloneable { private List<DataElement> datasetDefinitions = new ArrayList<>(); private List<Domain> domains = new ArrayList<>(); private String metadata; private String version = ""; private WorkspaceType workspaceType = WorkspaceType.esriLocalDatabaseWorkspace; public void addDatasetDefinition(final DataElement datasetDefinition) { this.datasetDefinitions.add(datasetDefinition); } public void addDomain(final Domain domain) { this.domains.add(domain); } @Override public WorkspaceDefinition clone() { try { final WorkspaceDefinition clone = (WorkspaceDefinition)super.clone(); clone.domains = new ArrayList<>(this.domains.size()); for (final Domain domain : this.domains) { clone.domains.add(domain.clone()); } clone.datasetDefinitions = new ArrayList<>(); for (final DataElement dataElement : this.datasetDefinitions) { clone.datasetDefinitions.add(dataElement.clone()); } return clone; } catch (final CloneNotSupportedException e) { throw new RuntimeException(e); } } public List<DataElement> getDatasetDefinitions() { return this.datasetDefinitions; } public List<Domain> getDomains() { return this.domains; } public String getMetadata() { return this.metadata; } public String getVersion() { return this.version; } public WorkspaceType getWorkspaceType() { return this.workspaceType; } public void setDatasetDefinitions(final List<DataElement> datasetDefinitions) { this.datasetDefinitions = datasetDefinitions; } public void setDomains(final List<Domain> domains) { this.domains = domains; } public void setMetadata(final String metadata) { this.metadata = metadata; } public void setVersion(final String version) { this.version = version; } public void setWorkspaceType(final WorkspaceType workspaceType) { this.workspaceType = workspaceType; } }