package com.revolsys.record; import java.util.Arrays; import java.util.List; import com.revolsys.record.schema.FieldDefinition; import com.revolsys.record.schema.RecordDefinition; import com.revolsys.record.schema.RecordDefinitionImpl; public class FixedValueRecord extends BaseRecord { private static final RecordDefinition RECORD_DEFINITION = new RecordDefinitionImpl(); private static final long serialVersionUID = 1L; private final Object value; public FixedValueRecord(final Object value) { this(RECORD_DEFINITION, value); } public FixedValueRecord(final RecordDefinition recordDefinition, final Object value) { super(recordDefinition); this.value = value; } @Override public FixedValueRecord clone() { final FixedValueRecord clone = (FixedValueRecord)super.clone(); return clone; } @Override @SuppressWarnings("unchecked") public <T> T getValue(final CharSequence name) { return (T)this.value; } @Override @SuppressWarnings("unchecked") public <T extends Object> T getValue(final int index) { if (index < 0) { return null; } else { return (T)this.value; } } @Override @SuppressWarnings("unchecked") public <T> T getValueByPath(final CharSequence path) { return (T)this.value; } @Override public List<Object> getValues() { return Arrays.asList(this.value); } @Override public int hashCode() { return this.value.hashCode(); } @Override protected boolean setValue(final FieldDefinition fieldDefinition, final Object value) { return false; } }