package com.revolsys.gis.esri.gdb.file.capi.type;
import com.revolsys.datatype.DataTypes;
import com.revolsys.gis.esri.gdb.file.capi.swig.Guid;
import com.revolsys.gis.esri.gdb.file.capi.swig.Row;
import com.revolsys.record.Record;
import com.revolsys.record.io.format.esri.gdb.xml.model.Field;
import com.revolsys.util.Booleans;
public class GlobalIdFieldDefinition extends AbstractFileGdbFieldDefinition {
public GlobalIdFieldDefinition(final Field field) {
this(field.getName(), field.getLength(),
Booleans.getBoolean(field.getRequired()) || !field.isIsNullable());
}
public GlobalIdFieldDefinition(final String name, final int length, final boolean required) {
super(name, DataTypes.STRING, length, required);
}
@Override
public Object getValue(final Row row) {
synchronized (getSync()) {
final Guid guid = row.getGlobalId();
return guid.toString();
}
}
@Override
public boolean isAutoCalculated() {
return true;
}
@Override
public void setPostInsertValue(final Record record, final Row row) {
synchronized (getSync()) {
final Guid guid = row.getGlobalId();
final String name = getName();
final String string = guid.toString();
record.setValue(name, string);
}
}
@Override
public void setValue(final Record record, final Row row, final Object value) {
}
}