package de.hannesniederhausen.storynotes.export.internal.model; import de.hannesniederhausen.storynotes.model.Category; import de.hannesniederhausen.storynotes.model.Note; import de.hannesniederhausen.storynotes.model.PlotCategory; import de.hannesniederhausen.storynotes.model.PlotNote; import de.hannesniederhausen.storynotes.model.Project; import de.hannesniederhausen.storynotes.model.StorynotesFactory; /** * * @author Hannes Niederhausen * */ public class NodeFactory { public NoteNode getRootNode(Project project) { NoteNode root = new NoteNode(0); for (Category cat : project.getCategories()) { if (cat instanceof PlotCategory) { for (Note n : cat.getNotes()) { PlotNote pn = (PlotNote) n; if (pn.isInsideOutline()) { if (pn.getNumber()!=null||!pn.getNumber().isEmpty()) { root.addPlotNote(pn); } } } } } root.sortChildren(); return root; } public static void main(String[] args) { StorynotesFactory fac = StorynotesFactory.eINSTANCE; Project project = fac.createProject(); project.setName("Test Project"); PlotCategory cat = fac.createPlotCategory(); project.getCategories().add(cat); String[] numbers = {"1.", "1.1.", "2.1", "2", "2.5", "1.3", "1.2.5"}; for (String num : numbers) { PlotNote pn = fac.createPlotNote(); pn.setNumber(num); pn.setTitle("Title: "+num); pn.setInsideOutline(true); cat.getNotes().add(pn); } new NodeFactory().getRootNode(project).dump(); } }