Я написал программу, которая анализирует файл csv и создает компонент из данных, которые нужно поместить в базу данных. Все работает отлично, но теперь, когда это будет перенесено из тестовой среды, необходимо будет добавить настоящие имена заголовков из csv. Эти заголовки содержат пробелы и /. Я ищу способ позволить моему парсеру читать эти заголовки. Когда я определяю имена заголовков, я должен использовать camelCasing, и я не могу вставить пробелы или другие символы. Есть ли способ изменить это?Форматирование поля заголовка для bean-генератора - Java
Вот мой конструктор (integrationTeam должна быть интеграционная группа, softwareHardware должна быть Hardware/Software - как в заголовке CSV)
public class BeanGen {
public BeanGen(
final String name,
final String manufacturer,
final String model,
final String owner,
final String integrationTeam,
final String shipping,
final String hardwareSoftware,
final String subsystem,
final String plane,
final String integrationStandalone,
final String integrationInterface,
final String function,
final String helpLinks,
final String installationInstructions,
final String testSteps,
final String leadEngineer)
{
this.name = name;
this.manufacturer = manufacturer;
this.model = model;
this.owner = owner;
this.integrationTeam = integrationTeam;
this.shipping = shipping;
this.hardwareSoftware = hardwareSoftware;
this.subsystem = subsystem;
this.plane = plane;
this.integrationStandalone = integrationStandalone;
this.integrationInterface = integrationInterface;
this.function = function;
this.helpLinks = helpLinks;
this.installationInstructions = installationInstructions;
this.testSteps = testSteps;
this.leadEngineer = leadEngineer;
}
Вот анализатор, который обрабатывает конструктору
public class ParseHandler {
private static CellProcessor[] getProcessors() {
final CellProcessor[] processors = new CellProcessor[] {
new Optional(),
new Optional(),
new Optional(),
new Optional(),
new Optional(),
new Optional(),
new Optional(),
new Optional(),
new Optional(),
new Optional(),
new Optional(),
new Optional(),
new Optional(),
new Optional(),
new Optional(),
new Optional(),
};
return processors;
}
public static BeanGen readWithCsvBeanReader(Path path) throws IOException {
ICsvBeanReader beanReader = null;
BeanGen projectBean = null;
System.out.println("Processing File: " + path);
try {
beanReader = new CsvBeanReader(new FileReader(path.toString()), CsvPreference.STANDARD_PREFERENCE);
// the header elements are used to map the values to the bean (names
// must match)
final String[] header = beanReader.getHeader(true);
final CellProcessor[] processors = getProcessors();
if ((projectBean = beanReader.read(BeanGen.class, header, processors)) != null) {
System.out.println(String.format("%s", projectBean.toString()));
}
} finally {
if (beanReader != null) {
beanReader.close();
}
} return projectBean;
}
}
Где ваш код, который выполняет синтаксический анализ csv и использует этот конструктор? –
Пожалуйста, покажите нам код разбора. Какова связь между именами переменных в конструкторе 'BeanGen' и именами заголовков CSV? – vanje
Элементы заголовка используются для сопоставления значений с компонентом. Имена заголовков должны точно совпадать или информация не будет найдена. Пока я тестировал это, мне пришлось изменить имена заголовков на то, как они отображаются. Когда эта программа будет использоваться, я не смогу это сделать, потому что в ней разбираются сотни csv - все имеют одинаковые заголовки, но содержат пробелы и символы. – jmpman