Made MonStatsParserImpl a concrete impl of Parser

This commit is contained in:
Collin Smith 2020-12-16 11:50:16 -08:00
parent c82e615772
commit a5fd0e8b14

View File

@ -1,22 +1,29 @@
package com.riiablo.table.schema; package com.riiablo.table.schema;
import java.io.IOException; import java.io.IOException;
import javax.annotation.Generated;
import com.riiablo.table.Parser; import com.riiablo.table.Parser;
import com.riiablo.table.TsvParser; import com.riiablo.table.TsvParser;
public abstract class MonStatsParserImpl implements Parser<MonStats> { public class MonStatsParserImpl implements Parser<MonStats> {
int[] fieldIds = new int[5];
@Override @Override
public boolean hasNext(TsvParser parser) throws IOException { public boolean hasNext(TsvParser parser) throws IOException {
return parser.cacheLine() != -1; return parser.cacheLine() != -1;
} }
@Override
public void parseFields(TsvParser parser) {
fieldIds[0] = parser.fieldId("A1MaxD1");
fieldIds[1] = parser.fieldId("A1MaxD2");
}
// TODO: performance improvement of sorting calls by fieldId // TODO: performance improvement of sorting calls by fieldId
// create Function[numFields]: (record) -> record.<field> = parser.parse<type>(fieldId) // create Function[numFields]: (record) -> record.<field> = parser.parse<type>(fieldId)
@Generated(value = "") @Override
public void parseRecord(final MonStats record, final TsvParser parser) { public void parseRecord(final MonStats record, final TsvParser parser) {
record.A1MaxD[0] = parser.parseInt(0); record.A1MaxD[0] = parser.parseInt(fieldIds[0]);
record.A1MaxD[1] = parser.parseInt(5); record.A1MaxD[1] = parser.parseInt(fieldIds[1]);
} }
} }