package com.revolsys.record.code;
import java.util.ArrayList;
import java.util.List;
import com.revolsys.identifier.Identifier;
import com.revolsys.record.Record;
import com.revolsys.record.io.RecordReader;
import com.revolsys.spring.resource.Resource;
public class SimpleCodeTable extends AbstractCodeTable {
public static CodeTable newCodeTable(final String name, final Resource resource) {
final SimpleCodeTable codeTable = new SimpleCodeTable(name);
try (
final RecordReader reader = RecordReader.newRecordReader(resource)) {
for (final Record record : reader) {
final Identifier id = record.getIdentifier(0);
final List<Object> values = new ArrayList<>();
final int fieldCount = record.getRecordDefinition().getFieldCount();
for (int i = 1; i < fieldCount; i++) {
final Object value = record.getValue(i);
values.add(value);
}
codeTable.addValue(id, values);
}
}
return codeTable;
}
public SimpleCodeTable(final String name) {
setName(name);
}
@Override
public void addValue(final Identifier id, final Object... values) {
super.addValue(id, values);
}
public void addValue(final Object id, final Object... values) {
super.addValue(Identifier.newIdentifier(id), values);
}
@Override
public SimpleCodeTable clone() {
return (SimpleCodeTable)super.clone();
}
@Override
public String getIdFieldName() {
return getName();
}
@Override
protected Identifier loadId(final List<Object> values, final boolean createId) {
return null;
}
@Override
public void refresh() {
}
}