package com.revolsys.record.property; import com.revolsys.record.schema.RecordDefinition; public abstract class AbstractRecordDefinitionProperty implements RecordDefinitionProperty { private RecordDefinition recordDefinition; @Override public AbstractRecordDefinitionProperty clone() { try { final AbstractRecordDefinitionProperty clone = (AbstractRecordDefinitionProperty)super.clone(); clone.recordDefinition = null; return clone; } catch (final CloneNotSupportedException e) { throw new RuntimeException(e); } } @Override public RecordDefinition getRecordDefinition() { return this.recordDefinition; } public String getTypePath() { return getRecordDefinition().getPath(); } @Override public void setRecordDefinition(final RecordDefinition recordDefinition) { final String propertyName = getPropertyName(); if (this.recordDefinition != null) { this.recordDefinition.setProperty(propertyName, null); } this.recordDefinition = recordDefinition; if (recordDefinition != null) { recordDefinition.setProperty(propertyName, this); } } }