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.EsriGeodatabaseXmlConstants;
import com.revolsys.record.io.format.esri.gdb.xml.model.enums.FieldType;
import com.revolsys.util.Property;
public class DETable extends DEDataset {
private String aliasName;
private String clsid = "{7A566981-C114-11D2-8A28-006097AFF44E}";
private List<ControllerMembership> controllerMemberships = new ArrayList<>();
private String defaultSubtypeCode;
private String extclsid = "";
private List<PropertySetProperty> extensionProperties = new ArrayList<>();
private List<Field> fields = new ArrayList<>();
private String globalIDFieldName = "";
private boolean hasOID;
private List<Index> indexes = new ArrayList<>();
private String modelName = "";
private String oidFieldName;
private String rasterFieldName = "";
private List<String> relationshipClassNames = new ArrayList<>();
private String subtypeFieldName;
private List<Subtype> subtypes = null;
public DETable() {
setDatasetType(EsriGeodatabaseXmlConstants.DATASET_TYPE_TABLE);
}
public DETable(final String clsid) {
this.clsid = clsid;
}
public void addField(final Field field) {
this.fields.add(field);
if (field.getType() == FieldType.esriFieldTypeGlobalID) {
this.globalIDFieldName = field.getName();
}
}
public void addIndex(final Field field, final boolean unique, final String indexName) {
final Index index = new Index();
index.setName(indexName);
index.setIsUnique(unique);
index.addField(field);
addIndex(index);
}
public void addIndex(final Index index) {
this.indexes.add(index);
}
public String getAliasName() {
return this.aliasName;
}
public String getCLSID() {
return this.clsid;
}
public List<ControllerMembership> getControllerMemberships() {
return this.controllerMemberships;
}
public String getDefaultSubtypeCode() {
return this.defaultSubtypeCode;
}
public String getEXTCLSID() {
return this.extclsid;
}
public List<PropertySetProperty> getExtensionProperties() {
return this.extensionProperties;
}
public List<Field> getFields() {
return this.fields;
}
public String getGlobalIDFieldName() {
if (!Property.hasValue(this.globalIDFieldName)) {
for (final Field field : getFields()) {
if (field.getType() == FieldType.esriFieldTypeGlobalID) {
this.globalIDFieldName = field.getName();
}
}
}
return this.globalIDFieldName;
}
public List<Index> getIndexes() {
return this.indexes;
}
public String getModelName() {
return this.modelName;
}
public String getOIDFieldName() {
return this.oidFieldName;
}
public String getRasterFieldName() {
return this.rasterFieldName;
}
public List<String> getRelationshipClassNames() {
return this.relationshipClassNames;
}
public String getSubtypeFieldName() {
return this.subtypeFieldName;
}
public List<Subtype> getSubtypes() {
return this.subtypes;
}
public boolean isHasGlobalID() {
return Property.hasValue(getGlobalIDFieldName());
}
public boolean isHasOID() {
return this.hasOID;
}
public void setAliasName(final String aliasName) {
this.aliasName = aliasName;
}
public void setCLSID(final String clsid) {
this.clsid = clsid;
}
public void setControllerMemberships(final List<ControllerMembership> controllerMemberships) {
this.controllerMemberships = controllerMemberships;
}
public void setDefaultSubtypeCode(final String defaultSubtypeCode) {
this.defaultSubtypeCode = defaultSubtypeCode;
}
public void setEXTCLSID(final String extclsid) {
this.extclsid = extclsid;
}
public void setExtensionProperties(final List<PropertySetProperty> extensionProperties) {
this.extensionProperties = extensionProperties;
}
public void setFields(final List<Field> fields) {
this.fields = fields;
for (final Field field : fields) {
if (field.getType() == FieldType.esriFieldTypeGlobalID) {
this.globalIDFieldName = field.getName();
}
}
}
public void setGlobalIDFieldName(final String globalIDFieldName) {
this.globalIDFieldName = globalIDFieldName;
}
public void setHasGlobalID(final boolean hasGlobalID) {
}
public void setHasOID(final boolean hasOID) {
this.hasOID = hasOID;
}
public void setIndexes(final List<Index> indexes) {
this.indexes = indexes;
}
public void setModelName(final String modelName) {
this.modelName = modelName;
}
public void setOIDFieldName(final String oidFieldName) {
this.oidFieldName = oidFieldName;
}
public void setRasterFieldName(final String rasterFieldName) {
this.rasterFieldName = rasterFieldName;
}
public void setRelationshipClassNames(final List<String> relationshipClassNames) {
this.relationshipClassNames = relationshipClassNames;
}
public void setSubtypeFieldName(final String subtypeFieldName) {
this.subtypeFieldName = subtypeFieldName;
}
public void setSubtypes(final List<Subtype> subtypes) {
this.subtypes = subtypes;
}
}