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 LengthFieldName extends AbstractRecordDefinitionProperty { public static final String PROPERTY_NAME = LengthFieldName.class.getName() + ".propertyName"; public static LengthFieldName getProperty(final Record record) { final RecordDefinition recordDefinition = record.getRecordDefinition(); return getProperty(recordDefinition); } public static LengthFieldName getProperty(final RecordDefinition recordDefinition) { LengthFieldName property = recordDefinition.getProperty(PROPERTY_NAME); if (property == null) { property = new LengthFieldName(); property.setRecordDefinition(recordDefinition); } return property; } public static void setRecordLength(final Record record) { final LengthFieldName property = getProperty(record); property.setLength(record); } private String fieldName; public LengthFieldName() { } public LengthFieldName(final String fieldName) { this.fieldName = fieldName; } public String getFieldName() { return this.fieldName; } @Override public String getPropertyName() { return PROPERTY_NAME; } public void setFieldName(final String fieldName) { this.fieldName = fieldName; } public void setLength(final Record record) { if (Property.hasValue(this.fieldName)) { final LineString line = record.getGeometry(); final double length = line.getLength(); record.setValue(this.fieldName, length); } } @Override public String toString() { return "LengthField " + this.fieldName; } }