package com.revolsys.record.property; import com.revolsys.geometry.model.LineString; import com.revolsys.record.Record; import com.revolsys.record.schema.RecordDefinition; import com.revolsys.util.Property; public class AreaFieldName extends AbstractRecordDefinitionProperty { public static final String PROPERTY_NAME = AreaFieldName.class.getName() + ".propertyName"; public static AreaFieldName getProperty(final Record record) { final RecordDefinition recordDefinition = record.getRecordDefinition(); return getProperty(recordDefinition); } public static AreaFieldName getProperty(final RecordDefinition recordDefinition) { AreaFieldName property = recordDefinition.getProperty(PROPERTY_NAME); if (property == null) { property = new AreaFieldName(); property.setRecordDefinition(recordDefinition); } return property; } public static void setRecordArea(final Record record) { final AreaFieldName property = getProperty(record); property.setArea(record); } private String fieldName; public AreaFieldName() { } public AreaFieldName(final String fieldName) { this.fieldName = fieldName; } public String getFieldName() { return this.fieldName; } @Override public String getPropertyName() { return PROPERTY_NAME; } public void setArea(final Record record) { if (Property.hasValue(this.fieldName)) { final LineString line = record.getGeometry(); final double area = line.getArea(); record.setValue(this.fieldName, area); } } public void setFieldName(final String fieldName) { this.fieldName = fieldName; } @Override public String toString() { return "AreaField " + this.fieldName; } }