package plugins.richwizard; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import org.molgenis.fieldtypes.BoolField; import org.molgenis.fieldtypes.DecimalField; import org.molgenis.fieldtypes.IntField; import org.molgenis.fieldtypes.StringField; import org.molgenis.model.MolgenisModelException; import org.molgenis.model.elements.Entity; import org.molgenis.model.elements.Field; public class Helper { public static HashMap<String, String> getExampleCSVs(List<Entity> entities) throws MolgenisModelException { int maxColSize = 0; HashMap<String, String> exampleCsvs = new HashMap<String, String>(); for (Entity entity : entities) { ArrayList<ArrayList<String>> columns = new ArrayList<ArrayList<String>>(); for (Field f : entity.getAllFields()) { ArrayList<String> col = new ArrayList<String>(); // System.out.println("NAME " + f.getName()); // System.out.println("expr1 " + !f.isAuto()); // System.out.println("expr2 " + !(f.getType().equals("xref") && // f.getXrefLabelNames().get(0).equals("name") && f // .getXrefEntityName().equals("Investigation"))); // System.out.println("expr3 " + !f.isNillable()); if (!f.isAuto() && !(f.getType().equals("xref") && f.getXrefLabelNames().get(0).equals("name") && f .getXrefEntityName().equals("Investigation")) && !f.isNillable()) { col.add(f.getName()); if (f.getType() instanceof StringField) { col.add("aap"); col.add("noot"); col.add("mies"); } else if (f.getType() instanceof IntField) { col.add("125"); col.add("6278"); col.add("45"); } else if (f.getType() instanceof BoolField) { col.add("true"); col.add("false"); col.add("true"); } else if (f.getType() instanceof DecimalField) { col.add("3.14159265"); col.add("2.71828183"); col.add("3564.234367"); } else { col.add("TODO"); col.add("TODO"); col.add("TODO"); } // System.out.println("ADDING COL: " + col.toString()); if (col.size() > maxColSize) { maxColSize = col.size(); } columns.add(col); } } // 'transpose' and concat String exampleCsv = ""; for (int i = 0; i < maxColSize; i++) { for (int col = 0; col < columns.size(); col++) { if (i < columns.get(col).size()) { exampleCsv += columns.get(col).get(i); if (col < (columns.size() - 1)) { exampleCsv += "\t"; } } } exampleCsv += "\n"; } exampleCsvs.put(entity.getName(), exampleCsv); // System.out.println("exampleCsv: " + exampleCsv); exampleCsv = ""; } return exampleCsvs; } }