private PSystemError merge(Collection<PSystemError> ps) { UmlSource source = null; final List<ErrorUml> errors = new ArrayList<ErrorUml>(); for (PSystemError system : ps) { if (system.getSource() != null && source == null) { source = system.getSource(); } errors.addAll(system.getErrorsUml()); } if (source == null) { throw new IllegalStateException(); } return new PSystemError(source, errors); }
public final PSystem createPSystem(final List<String> strings) throws IOException, InterruptedException { final List<PSystemFactory> factories = new ArrayList<PSystemFactory>(); factories.add(new SequenceDiagramFactory()); factories.add(new ClassDiagramFactory()); factories.add(new ActivityDiagramFactory()); factories.add(new ActivityDiagramFactory2()); factories.add(new UsecaseDiagramFactory()); factories.add(new ComponentDiagramFactory()); factories.add(new StateDiagramFactory()); factories.add(new ActivityDiagramFactory2()); factories.add(new CompositeDiagramFactory()); factories.add(new ObjectDiagramFactory()); factories.add(new PostIdDiagramFactory()); factories.add(new PrintSkinFactory()); factories.add(new PSystemVersionFactory()); factories.add(new PSystemDotFactory(DiagramType.DOT)); factories.add(new PSystemDotFactory(DiagramType.UML)); factories.add(new PSystemDitaaFactory(DiagramType.DITAA)); factories.add(new PSystemDitaaFactory(DiagramType.UML)); factories.add(new PSystemSudokuFactory()); factories.add(new PSystemEggFactory()); factories.add(new PSystemRIPFactory()); factories.add(new PSystemLostFactory()); factories.add(new PSystemPathFactory()); factories.add(new PSystemOregonFactory()); factories.add(new PSystemProjectFactory()); final UmlSource umlSource = new UmlSource(strings); final DiagramType diagramType = umlSource.getDiagramType(); final List<PSystemError> errors = new ArrayList<PSystemError>(); for (PSystemFactory systemFactory : factories) { if (diagramType != systemFactory.getDiagramType()) { continue; } final PSystem sys = new PSystemSingleBuilder(umlSource, systemFactory).getPSystem(); if (isOk(sys)) { return sys; } errors.add((PSystemError) sys); } final PSystemError err = merge(errors); if (OptionFlags.getInstance().isQuiet() == false) { err.print(System.err); } return err; }
public final Diagram createPSystem(final List<CharSequence2> strings2) { final List<PSystemFactory> factories = getAllFactories(); final DiagramType type = DiagramType.getTypeFromArobaseStart(strings2.get(0).toString2()); final UmlSource umlSource = new UmlSource(strings2, type == DiagramType.UML); final DiagramType diagramType = umlSource.getDiagramType(); final List<PSystemError> errors = new ArrayList<PSystemError>(); for (PSystemFactory systemFactory : factories) { if (diagramType != systemFactory.getDiagramType()) { continue; } final Diagram sys = systemFactory.createSystem(umlSource); if (isOk(sys)) { return sys; } errors.add((PSystemError) sys); } final PSystemError err = PSystemError.merge(errors); // if (OptionFlags.getInstance().isQuiet() == false) { // err.print(System.err); // } return err; }