package org.fastcatsearch.ir.field;
import java.io.IOException;
import java.util.List;
import org.fastcatsearch.ir.io.CharVector;
import org.fastcatsearch.ir.io.DataOutput;
public abstract class StringField extends Field {
public StringField(String id) {
super(id);
}
public StringField(String id, String data) {
super(id, data);
}
public StringField(String id, int size) {
super(id, size);
}
public StringField(String id, String data, int size) {
super(id, data, size);
}
@Override
protected Object parseData(String data) {
if (data == null) {
return null;
}
if (size > 0) {
if (data.length() > size) {
// logger.debug("Parse data1 {} >> {}", id, data);
data = data.substring(0, size);
// logger.debug("Parse data2 {} >> {}, {}", id, size, data);
}
}
return new CharVector(data);
}
@Override
public String getDataString() {
if (multiValue) {
StringBuilder sb = new StringBuilder();
final List<CharVector> list = (List<CharVector>) fieldsData;
if (list != null) {
for (int i = 0; i < list.size(); i++) {
CharVector charVector = (CharVector) list.get(i);
sb.append(charVector.toString());
if (i < list.size() - 1) {
sb.append(DEFAULT_MULTI_VALUE_DELIMITER);
}
}
} else {
return null;
}
return sb.toString();
} else {
return super.getDataString();
}
}
}