private void parsePlaces(MID mid) throws ParseException { Marking initialMarking = parsePlaces(mid, mainNet); if (initialMarking.getPlaces().size() > 0) mid.addInitialMarking(initialMarking); if (editor.getKernel().getSystemOptions().isNetHierarchyEnabled()) { for (JPanel subModel : editor.getSubModels()) if (subModel instanceof PrTPanel) { Marking subInitMarking = parsePlaces(mid, (PrTPanel) subModel); if (subInitMarking.getPlaces().size() > 0) subModelNonAnnotationInitialMarkings.put((PrTPanel) subModel, subInitMarking); } } }
protected void parseMainModelAnnotationMarking(MID mid, String text) throws ParseException { String markingString = text.substring(XMIDProcessor.INIT_KEYWORD.length()); if (markingString.trim().equals("")) return; Marking marking = null; try { marking = MIDParser.parseMarkingString(markingString); mid.addInitialMarking(marking); } catch (ParseException e) { throw new ParseException( XMIDProcessor.INIT_KEYWORD + " " + LocaleBundle.bundleString("annotation") + " " + text + ". " + e.toString()); } }
private void parseDataAnnotations(MID mid) throws ParseException { DataLayerInterface net = mainNet.getModel(); AnnotationNote[] annotationNotes = net.getLabels(); for (AnnotationNote annotation : annotationNotes) { String text = annotation.getText(); if (text.startsWith(XMIDProcessor.DATA_KEYWORD)) { String dataPath = text.substring(XMIDProcessor.DATA_KEYWORD.length()).trim(); try { ExcelTestDataLoader excelTestDataLoader = new ExcelTestDataLoader( editor.midFile.getParent() + File.separator + dataPath, mid.getPlaces()); for (Marking initMarking : excelTestDataLoader.getInitMarkings()) { mid.addInitialMarking(initMarking); } } catch (Exception e) { throw new ParseException(text + " -> " + e.getMessage()); } } } }
private void parseSubModelMarkingAnnotations(MID mid) throws ParseException { for (JPanel subModel : editor.getSubModels()) if (subModel instanceof PrTPanel) { // deal with initial markings ArrayList<Marking> initMarkings = parseSubModelMarkingAnnotations((PrTPanel) subModel, XMIDProcessor.INIT_KEYWORD); Marking nonAnnotationInitMarking = subModelNonAnnotationInitialMarkings.get((PrTPanel) subModel); if (nonAnnotationInitMarking != null) initMarkings.add(0, nonAnnotationInitMarking); if (initMarkings.size() > 1) throw new ParseException( LocaleBundle.bundleString("Warning") + ": " + modelNameMessage((PrTPanel) subModel) + LocaleBundle.bundleString("SUBMODEL_HAS_MORE_THAN_ONE_INITIAL_MARKINGS")); if (initMarkings.size() > 0) { if (mid.getInitialMarkings().size() == 0) mid.addInitialMarking(initMarkings.get(0)); else mid.getInitialMarkings().get(0).merge(initMarkings.get(0)); } } }