Я пытаюсь создать собственный процессор ячеек для SuperCSV, который будет обрабатывать список из поля внутри файла. Я изменил конструктор bean для размещения списков, теперь мне просто нужно создать процессор, и мне было интересно, есть ли у кого-нибудь опыт с этим. Я прочитал документацию ... любая помощь приветствуется!Пользовательский ячеистый процессор для списков
Bean Конструктор:
public class CustomerBean {
private String name;
private List<String> manufacturer;
private String model;
private List<String> owner;
public CustomerBean() {
}
public CustomerBean(final String name, final List<String> manufacturer,
final String model, final List<String> owner,
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<String> getManufacturer() {
return manufacturer;
}
public void setManufacturer(List<String> manufacturer) {
this.manufacturer = manufacturer;
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
public List<String> getOwner() {
return owner;
}
public void setOwner(List<String> owner) {
this.owner = owner;
}
public String toString() {
return String
.format("[Name=%s, Manufacturer=%s, Model=%s, Owner=%s]",
getName(), getManufacturer(), getModel(), getOwner());
}
Процессор:
public class ParseHandler {
private static CellProcessor[] getProcessors() {
final CellProcessor[] processors = new CellProcessor[] {
new Optional(), //name
new Optional(), //manufacturer - needs to be processed as a list!
new Optional(), //model
new Optional(), //owner - needs to be processed as a list!
new Optional(), //integration team
new Optional(), //shipping
new Optional(), //hardware/software
new Optional(), //subsystem
new Optional(), //plane
new Optional(), //integration stand-alone
new Optional(), //integration interface
new Optional(), //function
new Optional(), //help links
new Optional(), //installation instructions
new Optional(), //test steps
new Optional(), //lead engineer
};
return processors;
}
public static CustomerBean readWithCsvBeanReader(Path path) throws IOException {
ICsvBeanReader beanReader = null;
CustomerBean customer = null;
System.out.println("Processing File: " + path);
try {
beanReader = new CsvBeanReader(new FileReader(path.toString()), CsvPreference.STANDARD_PREFERENCE);
//header elements are the same as the bean property names
final String[] header = {"name", "manufacturer", "model", "owner", "integrationTeam", "shipping", "hardwareSoftware", "subsystem", "plane", "integrationStandalone",
"integrationInterface", "function", "helpLinks", "installationInstructions", "testSteps", "leadEngineer"};
beanReader.getHeader(true);
final CellProcessor[] processors = getProcessors();
if ((customer = beanReader.read(CustomerBean.class, header, processors)) != null) {
System.out.println(String.format("%s", customer.toString()));
}
} finally {
if (beanReader != null) {
beanReader.close();
}
} return customer;
}
}
В чем ваш вопрос. Конечно, это не «кто-нибудь имеет опыт с этим», – Kon