package com.revolsys.swing.map.layer.record;
import java.util.Map;
import com.revolsys.identifier.Identifier;
import com.revolsys.record.Record;
import com.revolsys.record.RecordState;
import com.revolsys.record.schema.RecordDefinition;
public class RecordStoreLayerRecord extends ArrayLayerRecord {
private static final long serialVersionUID = 1L;
public RecordStoreLayerRecord(final RecordStoreLayer layer) {
super(layer);
}
public RecordStoreLayerRecord(final RecordStoreLayer layer,
final Map<String, ? extends Object> values) {
super(layer, values);
}
protected RecordStoreLayerRecord(final RecordStoreLayer layer,
final RecordDefinition recordDefinition) {
super(layer, recordDefinition);
}
@Override
public LayerRecord getEventRecord() {
return newRecordProxy();
}
@Override
public RecordStoreLayer getLayer() {
return (RecordStoreLayer)super.getLayer();
}
@Override
public LayerRecord newRecordProxy() {
final Identifier identifier = getIdentifier();
if (identifier == null) {
return this;
} else {
final RecordStoreLayer layer = getLayer();
return layer.newProxyLayerRecord(identifier);
}
}
public void refreshFromRecordStore(final Record record) {
synchronized (this) {
if (!isHasOriginalValues()) {
final RecordState oldState = super.setState(RecordState.INITIALIZING);
try {
setValues(record);
} finally {
setState(oldState);
}
}
}
}
}