package com.revolsys.swing.map.layer.record.component;
import java.util.List;
import java.util.function.Supplier;
import com.revolsys.identifier.Identifier;
import com.revolsys.record.Record;
import com.revolsys.record.query.Query;
import com.revolsys.record.schema.RecordDefinition;
import com.revolsys.swing.field.AbstractRecordQueryField;
import com.revolsys.swing.field.Field;
import com.revolsys.swing.map.layer.record.AbstractRecordLayer;
import com.revolsys.swing.map.layer.record.LayerRecord;
public class RecordLayerQueryTextField extends AbstractRecordQueryField {
private static final long serialVersionUID = 1L;
public static Supplier<Field> factory(final AbstractRecordLayer layer, final String fieldName,
final String displayFieldName) {
return () -> {
return new RecordLayerQueryTextField(fieldName, layer, displayFieldName);
};
}
private final AbstractRecordLayer layer;
public RecordLayerQueryTextField(final String fieldName, final AbstractRecordLayer layer,
final String displayFieldName) {
super(fieldName, layer.getPathName(), displayFieldName);
this.layer = layer;
}
@Override
protected LayerRecord getRecord(final Identifier identifier) {
return this.layer.getRecordById(identifier);
}
@Override
public RecordDefinition getRecordDefinition() {
return this.layer.getRecordDefinition();
}
@SuppressWarnings({
"unchecked", "rawtypes"
})
@Override
protected List<Record> getRecords(final Query query) {
return (List)this.layer.getRecords(query);
}
}