///** // * This file is part of Faktotum. // * // * // * Faktotum is free software: you can redistribute it and/or // * modify it under the terms of the GNU Lesser General Public License // * as published by the Free Software Foundation, either version 3 of // * the License, or (at your option) any later version. // * // * Faktotum is distributed in the hope that it will be useful, // * but WITHOUT ANY WARRANTY; without even the implied warranty of // * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // * GNU Lesser General Public License for more details. // * // * You should have received a copy of the GNU Lesser General Public // * License along with Faktotum. // * // * If not, see <http://www.gnu.org/licenses/>. // */ //package de.romankreisel.faktotum.helper; // //import java.io.BufferedInputStream; //import java.io.BufferedReader; //import java.io.File; //import java.io.FileInputStream; //import java.io.FileReader; //import java.io.IOException; //import java.io.InputStream; //import java.io.InputStreamReader; //import java.nio.charset.Charset; //import java.text.ParseException; //import java.text.SimpleDateFormat; //import java.util.ArrayList; //import java.util.List; //import java.util.Map; //import java.util.TreeMap; // //import org.apache.commons.lang3.StringUtils; // //import de.romankreisel.faktotum.datamodel.BundesbruderEntity; //import de.romankreisel.faktotum.datamodel.FaktotumEntity; //import de.romankreisel.faktotum.datamodel.MemberStatusEntity; // //public class HistorieImport { // // public class ImportResults { // private int numberOfBundesbrueder = 0; // private int numberOfRelationships = 0; // private Map<Integer, MemberStatusEntity> status; // private Map<Long, BundesbruderEntity> bundesbruederMap; // private final List<FaktotumEntity> entities = new ArrayList<FaktotumEntity>(); // // public Map<Long, BundesbruderEntity> getBundesbruederMap() { // return this.bundesbruederMap; // } // // public List<FaktotumEntity> getEntities() { // return this.entities; // } // // public int getNumberOfBundesbrueder() { // return this.numberOfBundesbrueder; // } // // public int getNumberOfRelationships() { // return this.numberOfRelationships; // } // // public Map<Integer, MemberStatusEntity> getStatus() { // return this.status; // } // // public void setStatus(Map<Integer, MemberStatusEntity> status) { // this.status = status; // } // // } // // public int createRelations(File file, Map<Long, BundesbruderEntity> bundesbrueder) throws IOException { // int retVal = 0; // BufferedReader reader = null; // try { // reader = new BufferedReader(new FileReader(file)); // String line = null; // boolean firstLine = true; // while ((line = reader.readLine()) != null) { // if (firstLine) { // skip the first line // firstLine = false; // continue; // } // String[] datasetArray = line.split("\t"); // if (datasetArray.length == 2) { // try { // long biervaterid = Long.parseLong(datasetArray[0]); // long biersohnid = Long.parseLong(datasetArray[1]); // BundesbruderEntity biersohn = bundesbrueder.get(biersohnid); // if (biersohn != null) { // if (biervaterid != 2720) { // BundesbruderEntity biervater = bundesbrueder.get(biervaterid); // if (biervater != null) { // biersohn.setLeibBursche(biervater); // biersohn.setFounderMember(false); // } else { // System.out.println("Leibbursche " + biervaterid + " not found"); // continue; // } // } else { // biersohn.setFounderMember(true); // } // } else { // System.out.println("Leibfux " + biersohnid + " not found"); // continue; // } // retVal++; // } catch (NumberFormatException e) { // System.out.println("Error parsing line: " + line); // e.printStackTrace(); // } // } else { // throw new IOException("Unexpected input data!"); // } // } // } finally { // if (reader != null) { // reader.close(); // reader = null; // } // } // return retVal; // } // // public Map<Integer, MemberStatusEntity> createStatus() { // TreeMap<Integer, MemberStatusEntity> map = new TreeMap<Integer, MemberStatusEntity>(); // for (int i = 0; i <= 6; ++i) { // String name; // switch (i) { // case 1: // name = "Aktiv"; // break; // case 2: // name = "Inaktiv"; // break; // case 3: // name = "AH"; // break; // case 4: // name = "Ausgetreten"; // break; // case 5: // name = "Verstorben"; // break; // case 6: // name = "EAH"; // break; // case 7: // name = "Philister"; // break; // default: // name = "Unbestimmt"; // } // MemberStatusEntity memberStatus = new MemberStatusEntity(); // memberStatus.setName(name); // map.put(i, memberStatus); // } // return map; // } // // private String getValueFromArray(String[] array, int position) { // if (array.length > position) { // String retVal = array[position]; // if (!retVal.trim().equals("NULL")) { // return retVal; // } // } // return null; // } // // public Map<Long, BundesbruderEntity> importBundesbruder(File tsvFile, File pictureDirectory, Map<Integer, MemberStatusEntity> status) throws IOException { // BufferedReader reader = null; // SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); // Map<Long, BundesbruderEntity> map = new TreeMap<Long, BundesbruderEntity>(); // try { // reader = new BufferedReader(new InputStreamReader(new FileInputStream(tsvFile), Charset.forName("UTF-8"))); // String line = null; // boolean firstLine = true; // while ((line = reader.readLine()) != null) { // if (firstLine) { // skip the first line // firstLine = false; // continue; // } // String[] datasetArray = line.split("\t"); // // String idString = this.getValueFromArray(datasetArray, 0); // try { // long id = Long.parseLong(idString); // // BundesbruderEntity bundesbruder = new BundesbruderEntity(); // String firstName = this.getValueFromArray(datasetArray, 1); // if (!StringUtils.isEmpty(firstName) && !firstName.trim().equals("-")) { // firstName = firstName.trim(); // bundesbruder.setFirstName(firstName); // } // String lastName = this.getValueFromArray(datasetArray, 2); // if (!StringUtils.isEmpty(lastName) && !lastName.trim().equals("-")) { // bundesbruder.setLastName(lastName); // } // String kneipName = this.getValueFromArray(datasetArray, 3); // if (!StringUtils.isEmpty(kneipName) && !kneipName.trim().equals("-")) { // kneipName = kneipName.trim(); // if (kneipName.endsWith("III")) { // bundesbruder.setKneipname(kneipName.substring(0, kneipName.lastIndexOf("III")).trim()); // bundesbruder.setKneipnameAppendix(3); // } else if (kneipName.endsWith("II")) { // bundesbruder.setKneipname(kneipName.substring(0, kneipName.lastIndexOf("II")).trim()); // bundesbruder.setKneipnameAppendix(2); // } else if (kneipName.endsWith("I")) { // bundesbruder.setKneipname(kneipName.substring(0, kneipName.lastIndexOf("I")).trim()); // bundesbruder.setKneipnameAppendix(1); // } else { // bundesbruder.setKneipname(kneipName); // bundesbruder.setKneipnameAppendix(1); // } // } // // String birthDateString = this.getValueFromArray(datasetArray, 4); // if (!StringUtils.isEmpty(birthDateString) && !birthDateString.trim().equals("0000-00-00")) { // try { // bundesbruder.setBirthDate(simpleDateFormat.parse(birthDateString)); // } catch (ParseException e) { // System.out.println("Date cannot be parsed: " + birthDateString); // } // } // String firstActiveSemesterString = this.getValueFromArray(datasetArray, 6); // if (!StringUtils.isEmpty(firstActiveSemesterString)) { // try { // int firstActiveSemester = Integer.parseInt(firstActiveSemesterString); // if (firstActiveSemester > 0) { // bundesbruder.setFirstActiveSemester(firstActiveSemester); // } // } catch (NumberFormatException e) { // System.out.println("First Active Semester cannot be parsed: " + firstActiveSemesterString); // } // } // // String lastActiveSemesterString = this.getValueFromArray(datasetArray, 7); // if (!StringUtils.isEmpty(lastActiveSemesterString)) { // try { // int lastActiveSemester = Integer.parseInt(lastActiveSemesterString); // if (lastActiveSemester > 0) { // bundesbruder.setLastActiveSemester(lastActiveSemester); // } // } catch (NumberFormatException e) { // System.out.println("Last Active Semester cannot be parsed: " + lastActiveSemesterString); // } // } // // String statusString = this.getValueFromArray(datasetArray, 8); // int statusInt = 0; // if (!StringUtils.isEmpty(statusString)) { // try { // statusInt = Integer.parseInt(statusString); // } catch (NumberFormatException e) { // System.out.println("Status cannot be parsed: " + lastActiveSemesterString); // } // } // bundesbruder.setMemberStatus(status.get(statusInt)); // // File pictureFile = new File(pictureDirectory, id + ".jpg"); // if (pictureFile.exists() && pictureFile.isFile() && pictureFile.canRead()) { // InputStream pictureFileInputStream = null; // try { // pictureFileInputStream = new BufferedInputStream(new FileInputStream(pictureFile)); // ArrayList<Byte> picture = new ArrayList<Byte>(); // int nextByte; // while ((nextByte = pictureFileInputStream.read()) >= 0) { // picture.add((byte) nextByte); // } // bundesbruder.setPicture(picture.toArray(new Byte[picture.size()])); // } catch (IOException e) { // System.out.println("Error reading file " + pictureFile.getAbsolutePath()); // } finally { // if (pictureFileInputStream != null) { // try { // pictureFileInputStream.close(); // } catch (IOException e) { // System.out.println("Error closing file " + pictureFile.getAbsolutePath()); // } finally { // pictureFileInputStream = null; // } // } // } // } // // if (id != 2720) { // do not import "virtual" urburschen BB // map.put(id, bundesbruder); // System.out.println(bundesbruder); // } // } catch (NumberFormatException e) { // System.out.println("Error reading ID: " + idString); // } // // } // // return map; // } finally { // if (reader != null) { // reader.close(); // reader = null; // } // } // } // // public ImportResults importFromHistorie() throws IOException { // ImportResults retVal = new ImportResults(); // HistorieImport importer = new HistorieImport(); // retVal.setStatus(importer.createStatus()); // Map<Long, BundesbruderEntity> bundesbrueder = importer.importBundesbruder(new File("E:/history-data/bb.txt"), new File("E:/history-data/bilder"), // retVal.getStatus()); // retVal.numberOfBundesbrueder = bundesbrueder.size(); // retVal.numberOfRelationships = importer.createRelations(new File("E:/history-data/verwandschaften.txt"), bundesbrueder); // retVal.bundesbruederMap = bundesbrueder; // // retVal.getEntities().add(neo); // // retVal.getEntities().add(user); // // neo.setUser(user); // return retVal; // } // }