private void transformFailed(String text) { System.out.println(text); writeTransformProtocol(text); writeTransformProtocol("\nGraph transformation failed"); // fireGraTra(new GraTraEvent(this,GraTraEvent.TRANSFORM_FAILED, // this.errorMsg)); fireGraTra(new GraTraEvent(this, GraTraEvent.TRANSFORM_FINISHED, this.errorMsg)); closeTransformProtocol(); }
private boolean applyRule(Rule r) { boolean applied = false; while (apply(r)) { applied = true; break; } String s0 = r.getName() + " \t applied: " + applied; System.out.println(s0); writeTransformProtocol(s0); String s1 = ""; if (!applied) { s1 = s1 + getErrorMsg(); writeTransformProtocol(s1); } return applied; }
public void transform(List<Rule> ruleSet) { // allRulesEnabled = true; this.currentRuleSet.clear(); this.currentRuleSet.addAll(ruleSet); boolean result = apply(); if (!result && !this.priorityGraTra) writeTransformProtocol("Graph transformation failed. No rule priority used."); }
private void openTransformProtocol(String dirName, String fileName) { String dName = dirName; String fName = "PriorityGraTra.log"; // System.out.println("PriorityGraTraImpl.openTransformProtocol: // dirName: "+dirName); // System.out.println("PriorityGraTraImpl.openTransformProtocol: // fileName: "+fileName); if ((fileName != null) && !fileName.equals("")) { if (fileName.endsWith(".ggx")) fName = fileName.substring(0, fileName.length() - 4) + "_GraTra.log"; else fName = fileName + "_GraTra.log"; } // System.out.println(fName); if ((dName != null) && !dName.equals("")) { this.f = new File(dirName); if (this.f.exists()) { if (this.f.isFile()) { if (this.f.getParent() != null) dName = this.f.getParent() + File.separator; else dName = "." + File.separator; } else if (this.f.isDirectory()) { // System.out.println(dirName); dName = this.f.getPath() + File.separator; } else dName = "." + File.separator; } else dName = "." + File.separator; this.f = new File(dirName + fName); } else this.f = new File(fName); try { this.os = new FileOutputStream(this.f); this.protocolFileName = this.f.getName(); } catch (FileNotFoundException ex) { ex.printStackTrace(); } writeTransformProtocol((new Date()).toString()); }
private void writeUsedTimeToProtocol(String text, long beginTime) { writeTransformProtocol(text + +(System.currentTimeMillis() - beginTime) + "ms"); // time0 = System.currentTimeMillis(); }
public void transform() { this.stopping = false; if (!this.grammar.getListOfRules().isEmpty() && this.currentRuleSet.isEmpty()) setRuleSet(); if (this.writeLogFile) { String dirName = this.grammar.getDirName(); String fileName = this.grammar.getFileName(); if ((fileName == null) || fileName.equals("")) fileName = this.grammar.getName(); openTransformProtocol(dirName, fileName); String version = "Version: AGG " + Version.getID() + "\n"; writeTransformProtocol(version); String s0 = "Graph transformation by rule priority of : " + this.grammar.getName(); String s1 = "at graph : " + this.grammar.getGraph().getName(); String s2 = getRuleNames(this.currentRuleSet); writeTransformProtocol(s0); writeTransformProtocol(s1); writeTransformProtocol(s2); writeTransformProtocol("\n"); } // first check the rules, the graph if (!this.grammarChecked) { Pair<Object, String> pair = this.grammar.isReadyToTransform(true); if (pair != null) { Object test = pair.first; if (test != null) { String s0 = pair.second + "\nTransformation is stopped."; if (test instanceof Type) ((GraTra) this).fireGraTra(new GraTraEvent(this, GraTraEvent.ATTR_TYPE_FAILED, s0)); else if (test instanceof Rule) ((GraTra) this).fireGraTra(new GraTraEvent(this, GraTraEvent.RULE_FAILED, s0)); else if (test instanceof AtomConstraint) ((GraTra) this).fireGraTra(new GraTraEvent(this, GraTraEvent.ATOMIC_GC_FAILED, s0)); transformFailed(s0); return; } } else if (!this.grammar.isGraphReadyForTransform()) { String s0 = "Graph of the grammar is not fine." + "\nPlease check attribute settings of the objects. \nTransformation is stopped."; ((GraTra) this).fireGraTra(new GraTraEvent(this, GraTraEvent.GRAPH_FAILED, s0)); transformFailed(s0); return; } else if (!this.checkGraphConsistency()) { String s = "Graph consistency failed." + "\nPlease check the host graph against the graph constraints." + "\nTransformation is stopped."; ((GraTra) this).fireGraTra(new GraTraEvent(this, GraTraEvent.GRAPH_FAILED, s)); transformFailed(s); return; } this.grammarChecked = true; } // stop start time long startTime = System.currentTimeMillis(); // time0 = startTime; Vector<Rule> ruleSet = getEnabledRules(this.currentRuleSet); transform(ruleSet); if (this.options.hasOption(GraTraOptions.CONSISTENCY_CHECK_AFTER_GRAPH_TRAFO)) { this.checkGraphConsistency(); } // stop time System.out.println( "Used time for graph transformation: " + (System.currentTimeMillis() - startTime) + "ms"); if (this.writeLogFile) { writeUsedTimeToProtocol("Used time for graph transformation: ", startTime); writeTransformProtocol("\nGraph transformation finished"); closeTransformProtocol(); } fireGraTra(new GraTraEvent(this, GraTraEvent.TRANSFORM_FINISHED, this.errorMsg)); }