public void execute(final SNode node, final EditorContext editorContext) { String name = CreateFromUsageUtil.getText(editorContext); if (name == null || name.length() == 0) { name = "default_" + SPropertyOperations.getString(node, "name"); } SNode t = SNodeFactoryOperations.createNewRootNode( SNodeOperations.getModel(node), "jetbrains.mps.lang.generator.structure.TemplateDeclaration", null); SPropertyOperations.set(t, "name", name); t.setProperty( SModelTreeNode.PACK, SPropertyOperations.getString( SNodeOperations.cast( SNodeOperations.getContainingRoot(node), "jetbrains.mps.lang.core.structure.BaseConcept"), "virtualPackage")); // make reference SNode tr = SNodeFactoryOperations.createNewNode( "jetbrains.mps.lang.generator.structure.TemplateDeclarationReference", null); SLinkOperations.setTarget(tr, "template", t, false); SLinkOperations.setTarget(node, "defaultConsequence", tr, true); }
private static SNode _quotation_createNode_20awhq_a0a1a5a0(Object parameter_1) { SNode quotedNode_2 = null; SNode quotedNode_3 = null; SNode quotedNode_4 = null; SNode quotedNode_5 = null; quotedNode_2 = SModelUtil_new.instantiateConceptDeclaration( "jetbrains.mps.build.workflow.structure.BwfAntStatement", null, null, GlobalScope.getInstance(), false); quotedNode_3 = SModelUtil_new.instantiateConceptDeclaration( "jetbrains.mps.core.xml.structure.XmlElement", null, null, GlobalScope.getInstance(), false); quotedNode_3.setProperty("tagName", "mkdir"); quotedNode_3.setProperty("shortEmptyNotation", "true"); quotedNode_4 = SModelUtil_new.instantiateConceptDeclaration( "jetbrains.mps.core.xml.structure.XmlAttribute", null, null, GlobalScope.getInstance(), false); quotedNode_4.setProperty("attrName", "dir"); quotedNode_5 = SModelUtil_new.instantiateConceptDeclaration( "jetbrains.mps.core.xml.structure.XmlTextValue", null, null, GlobalScope.getInstance(), false); quotedNode_5.setProperty("text", (String) parameter_1); quotedNode_4.addChild("value", quotedNode_5); quotedNode_3.addChild("attributes", quotedNode_4); quotedNode_2.addChild("element", quotedNode_3); return quotedNode_2; }
@Override protected void handleChild(Object resultObject, String tagName, Object value) throws SAXException { SNode result = (SNode) resultObject; if ("property".equals(tagName)) { String[] child = (String[]) value; if (child[1] != null) { result.setProperty(fieldhelper.readName(child[0]), child[1], false); fieldlinkMap.addNameLocation(fieldhelper.readLinkId(child[2]), result, child[0]); } return; } if ("link".equals(tagName)) { String[] child = (String[]) value; Pair<Boolean, SNodePointer> pptr = fieldhelper.readLink_internal(child[1]); SNodePointer ptr = pptr.o2; if (ptr == null || ptr.getModelReference() == null) { if (log.isErrorEnabled()) { log.error("couldn't create reference '" + child[0] + "' from " + child[1]); } return; } /* SReference ref; if (pptr.o1) { ref = new DynamicReference(fieldhelper.readRole(child[0]), result, ptr.getModelReference(), child[2]); fieldlinkMap.addDynamicReference(ptr.getModelReference(), (DynamicReference) ref); } else { ref = new StaticReference(fieldhelper.readRole(child[0]), result, ptr.getModelReference(), ptr.getNodeId(), child[2]); fieldlinkMap.addTargetLocation(ptr, (StaticReference) ref); } */ StaticReference ref = new StaticReference( fieldhelper.readRole(child[0]), result, ptr.getModelReference(), ptr.getNodeId(), child[2]); fieldlinkMap.addTargetLocation(ptr, ref); result.addReference(ref); fieldlinkMap.addRoleLocation(fieldhelper.readLinkId(child[3]), ref); return; } if ("node".equals(tagName)) { SNode child = (SNode) value; result.addChild(child.getRole_(), child); return; } super.handleChild(resultObject, tagName, value); }
public void test_setProperty() throws Exception { this.addNodeById("8150353254540236423"); this.addNodeById("8150353254540236549"); this.addNodeById("4195712261513743410"); SNode sNode = SNodeOperations.cast( this.getNodeById("4195712261513743413"), "jetbrains.mps.baseLanguage.structure.IfStatement"); StatCountNodeReadAccessInEditorListener listener = new StatCountNodeReadAccessInEditorListener(sNode); NodeReadAccessCasterInEditor.setCellBuildNodeReadAccessListener(listener); sNode.setProperty("forceOneLine", "true"); this.assertMethod( "public void jetbrains.mps.smodel.SNode.setProperty(java.lang.String,java.lang.String)", listener.getResults().o1); }
public void execute(final SNode node, final EditorContext editorContext) { SNode applicableConcept = SLinkOperations.getTarget(node, "applicableConcept", false); String name = CreateFromUsageUtil.getText(editorContext); if (name == null || name.length() == 0) { name = "weave_"; if (applicableConcept != null) { name += SPropertyOperations.getString(applicableConcept, "name"); } } SNode t = SNodeFactoryOperations.createNewRootNode( SNodeOperations.getModel(node), "jetbrains.mps.lang.generator.structure.TemplateDeclaration", null); SPropertyOperations.set(t, "name", name); SLinkOperations.setTarget(t, "applicableConcept", applicableConcept, false); t.setProperty( SNodeUtil.property_BaseConcept_virtualPackage, SPropertyOperations.getString( SNodeOperations.cast( SNodeOperations.getContainingRoot(node), "jetbrains.mps.lang.core.structure.BaseConcept"), "virtualPackage")); // initialize 'content node' in template SNode contextNodeType = TypeChecker.getInstance() .getTypeOf( SLinkOperations.getTarget( SNodeOperations.cast( node, "jetbrains.mps.lang.generator.structure.Weaving_MappingRule"), "contextNodeQuery", true)); if (SNodeOperations.isInstanceOf( contextNodeType, "jetbrains.mps.lang.smodel.structure.SNodeType")) { SNode contextNodeConcept = SLinkOperations.getTarget( SNodeOperations.cast( contextNodeType, "jetbrains.mps.lang.smodel.structure.SNodeType"), "concept", false); if (contextNodeConcept != SConceptOperations.findConceptDeclaration( "jetbrains.mps.lang.core.structure.BaseConcept")) { if (!(SNodeOperations.isInstanceOf( contextNodeConcept, "jetbrains.mps.lang.structure.structure.InterfaceConceptDeclaration"))) { SLinkOperations.setTarget( t, "contentNode", SNodeFactoryOperations.createNewNode(NameUtil.nodeFQName(contextNodeConcept), null), true); } } } // make reference SNode tr = SNodeFactoryOperations.setNewChild( node, "ruleConsequence", "jetbrains.mps.lang.generator.structure.TemplateDeclarationReference"); SLinkOperations.setTarget(tr, "template", t, false); }
public Collection<SNode> apply( @NotNull final TemplateExecutionEnvironment environment, @NotNull final TemplateContext context) throws GenerationException { final SNode tnode1 = new SNode("jetbrains.mps.baseLanguage.structure.ClassConcept"); try { environment.getTracer().pushTemplateNode(templateNode_kyghau_a0a0a1a1); environment.nodeCopied( context, tnode1, "tpl/r:00000000-0000-4000-0000-011c89590606/4146564171992412775"); tnode1.setProperty("name", "RootCustom"); { final SNode tnode2 = new SNode("jetbrains.mps.baseLanguage.structure.FieldDeclaration"); try { environment.getTracer().pushTemplateNode(templateNode_kyghau_a0a0a1a4a1a1); environment.nodeCopied( context, tnode2, "tpl/r:00000000-0000-4000-0000-011c89590606/5015072279636761135"); tnode2.setProperty("name", "q"); { final SNode tnode3 = new SNode("jetbrains.mps.baseLanguage.structure.PrivateVisibility"); try { environment.getTracer().pushTemplateNode(templateNode_kyghau_a0a0a1a4a1a4a1a1); environment.nodeCopied( context, tnode3, "tpl/r:00000000-0000-4000-0000-011c89590606/5015072279636761136"); } finally { environment .getTracer() .pushOutputNode( GenerationTracerUtil.getSNodePointer(environment.getOutputModel(), tnode3)); environment.getTracer().closeTemplateNode(templateNode_kyghau_a0a0a1a4a1a4a1a1); } if (tnode3 != null) { tnode2.addChild("visibility", tnode3); } // TODO validate child } { final SNode tnode4 = new SNode("jetbrains.mps.baseLanguage.structure.IntegerType"); try { environment.getTracer().pushTemplateNode(templateNode_kyghau_a0a0a1a5a1a4a1a1); environment.nodeCopied( context, tnode4, "tpl/r:00000000-0000-4000-0000-011c89590606/5015072279636761138"); } finally { environment .getTracer() .pushOutputNode( GenerationTracerUtil.getSNodePointer(environment.getOutputModel(), tnode4)); environment.getTracer().closeTemplateNode(templateNode_kyghau_a0a0a1a5a1a4a1a1); } if (tnode4 != null) { tnode2.addChild("type", tnode4); } // TODO validate child } } finally { environment .getTracer() .pushOutputNode( GenerationTracerUtil.getSNodePointer(environment.getOutputModel(), tnode2)); environment.getTracer().closeTemplateNode(templateNode_kyghau_a0a0a1a4a1a1); } if (tnode2 != null) { tnode1.addChild("field", tnode2); } // TODO validate child } { final SNode tnode5 = new SNode("jetbrains.mps.baseLanguage.structure.InstanceMethodDeclaration"); try { environment.getTracer().pushTemplateNode(templateNode_kyghau_a0a0a1a5a1a1); environment.nodeCopied( context, tnode5, "tpl/r:00000000-0000-4000-0000-011c89590606/4146564171992412782"); tnode5.setProperty("name", "main"); { final SNode tnode6 = new SNode("jetbrains.mps.baseLanguage.structure.VoidType"); try { environment.getTracer().pushTemplateNode(templateNode_kyghau_a0a0a1a4a1a5a1a1); environment.nodeCopied( context, tnode6, "tpl/r:00000000-0000-4000-0000-011c89590606/4146564171992412783"); } finally { environment .getTracer() .pushOutputNode( GenerationTracerUtil.getSNodePointer(environment.getOutputModel(), tnode6)); environment.getTracer().closeTemplateNode(templateNode_kyghau_a0a0a1a4a1a5a1a1); } if (tnode6 != null) { tnode5.addChild("returnType", tnode6); } // TODO validate child } { final SNode tnode7 = new SNode("jetbrains.mps.baseLanguage.structure.PublicVisibility"); try { environment.getTracer().pushTemplateNode(templateNode_kyghau_a0a0a1a5a1a5a1a1); environment.nodeCopied( context, tnode7, "tpl/r:00000000-0000-4000-0000-011c89590606/4146564171992412784"); } finally { environment .getTracer() .pushOutputNode( GenerationTracerUtil.getSNodePointer(environment.getOutputModel(), tnode7)); environment.getTracer().closeTemplateNode(templateNode_kyghau_a0a0a1a5a1a5a1a1); } if (tnode7 != null) { tnode5.addChild("visibility", tnode7); } // TODO validate child } { Collection<SNode> tlist8 = null; try { environment.getTracer().pushMacro(copySrcMacro_kyghau_a0a0a1a6a1a5a1a1); final SNode copySrcInput8 = QueriesGenerated.sourceNodeQuery_4146564171992412788( environment.getOperationContext(), new SourceSubstituteMacroNodeContext( context.getInput(), copySrcMacro_kyghau_a0a0a1a6a1a5a1a1, context, environment.getGenerator())); tlist8 = environment.copyNodes( TemplateUtil.singletonList(copySrcInput8), copySrcMacro_kyghau_a0a0a1a6a1a5a1a1, "tpl/r:00000000-0000-4000-0000-011c89590606/4146564171992412785", null, context); } finally { environment.getTracer().closeMacro(copySrcMacro_kyghau_a0a0a1a6a1a5a1a1); } for (SNode child9 : TemplateUtil.asNotNull(tlist8)) { tnode5.addChild("body", child9); } // TODO validate child } } finally { environment .getTracer() .pushOutputNode( GenerationTracerUtil.getSNodePointer(environment.getOutputModel(), tnode5)); environment.getTracer().closeTemplateNode(templateNode_kyghau_a0a0a1a5a1a1); } if (tnode5 != null) { tnode1.addChild("method", tnode5); } // TODO validate child } { final SNode tnode10 = new SNode("jetbrains.mps.baseLanguage.structure.PublicVisibility"); try { environment.getTracer().pushTemplateNode(templateNode_kyghau_a0a0a1a6a1a1); environment.nodeCopied( context, tnode10, "tpl/r:00000000-0000-4000-0000-011c89590606/4146564171992412776"); } finally { environment .getTracer() .pushOutputNode( GenerationTracerUtil.getSNodePointer(environment.getOutputModel(), tnode10)); environment.getTracer().closeTemplateNode(templateNode_kyghau_a0a0a1a6a1a1); } if (tnode10 != null) { tnode1.addChild("visibility", tnode10); } // TODO validate child } { final SNode tnode11 = new SNode("jetbrains.mps.baseLanguage.structure.ConstructorDeclaration"); try { environment.getTracer().pushTemplateNode(templateNode_kyghau_a0a0a1a7a1a1); environment.nodeCopied( context, tnode11, "tpl/r:00000000-0000-4000-0000-011c89590606/4146564171992412777"); { final SNode tnode12 = new SNode("jetbrains.mps.baseLanguage.structure.VoidType"); try { environment.getTracer().pushTemplateNode(templateNode_kyghau_a0a0a1a3a1a7a1a1); environment.nodeCopied( context, tnode12, "tpl/r:00000000-0000-4000-0000-011c89590606/4146564171992412778"); } finally { environment .getTracer() .pushOutputNode( GenerationTracerUtil.getSNodePointer(environment.getOutputModel(), tnode12)); environment.getTracer().closeTemplateNode(templateNode_kyghau_a0a0a1a3a1a7a1a1); } if (tnode12 != null) { tnode11.addChild("returnType", tnode12); } // TODO validate child } { final SNode tnode13 = new SNode("jetbrains.mps.baseLanguage.structure.PublicVisibility"); try { environment.getTracer().pushTemplateNode(templateNode_kyghau_a0a0a1a4a1a7a1a1); environment.nodeCopied( context, tnode13, "tpl/r:00000000-0000-4000-0000-011c89590606/4146564171992412779"); } finally { environment .getTracer() .pushOutputNode( GenerationTracerUtil.getSNodePointer(environment.getOutputModel(), tnode13)); environment.getTracer().closeTemplateNode(templateNode_kyghau_a0a0a1a4a1a7a1a1); } if (tnode13 != null) { tnode11.addChild("visibility", tnode13); } // TODO validate child } { final SNode tnode14 = new SNode("jetbrains.mps.baseLanguage.structure.StatementList"); try { environment.getTracer().pushTemplateNode(templateNode_kyghau_a0a0a1a5a1a7a1a1); environment.nodeCopied( context, tnode14, "tpl/r:00000000-0000-4000-0000-011c89590606/4146564171992412780"); { final SNode tnode15 = new SNode( "jetbrains.mps.baseLanguage.structure.LocalVariableDeclarationStatement"); try { environment .getTracer() .pushTemplateNode(templateNode_kyghau_a0a0a1a3a1a5a1a7a1a1); environment.nodeCopied( context, tnode15, "tpl/r:00000000-0000-4000-0000-011c89590606/5015072279636761102"); { Collection<SNode> tlist16 = null; try { environment .getTracer() .pushMacro(varMacroRef_kyghau_a0a0a1a3a1a3a1a5a1a7a1a1); final Object varValue16 = QueriesGenerated.insertMacro_varValue_5015072279636761109( environment.getOperationContext(), new TemplateVarContext( context.getInput(), varMacroRef_kyghau_a0a0a1a3a1a3a1a5a1a7a1a1, context, environment.getGenerator())); TemplateContext context16 = context.subContext( Collections.<String, Object>singletonMap("var:var1", varValue16)); final SNode tnode17 = new SNode( "jetbrains.mps.baseLanguage.structure.LocalVariableDeclaration"); try { environment .getTracer() .pushTemplateNode(templateNode_kyghau_a0a0a4a1a3a1a3a1a5a1a7a1a1); environment.nodeCopied( context16, tnode17, "tpl/r:00000000-0000-4000-0000-011c89590606/5015072279636761103"); tnode17.setProperty("name", "i"); { final SNode tnode18 = new SNode("jetbrains.mps.baseLanguage.structure.IntegerType"); try { environment .getTracer() .pushTemplateNode( templateNode_kyghau_a0a0a1a4a4a1a3a1a3a1a5a1a7a1a1); environment.nodeCopied( context16, tnode18, "tpl/r:00000000-0000-4000-0000-011c89590606/5015072279636761104"); } finally { environment .getTracer() .pushOutputNode( GenerationTracerUtil.getSNodePointer( environment.getOutputModel(), tnode18)); environment .getTracer() .closeTemplateNode( templateNode_kyghau_a0a0a1a4a4a1a3a1a3a1a5a1a7a1a1); } if (tnode18 != null) { tnode17.addChild("type", tnode18); } // TODO validate child } { final SNode tnode19 = new SNode("jetbrains.mps.baseLanguage.structure.IntegerConstant"); try { environment .getTracer() .pushTemplateNode( templateNode_kyghau_a0a0a1a5a4a1a3a1a3a1a5a1a7a1a1); environment.nodeCopied( context16, tnode19, "tpl/r:00000000-0000-4000-0000-011c89590606/5015072279636761106"); tnode19.setProperty( "value", TemplateUtil.asString( QueriesGenerated .propertyMacro_GetPropertyValue_2721957369897795324( environment.getOperationContext(), new PropertyMacroContext( context16.getInput(), "0", propertyMacro_kyghau_c0b0b0a2a1a5a4a1a3a1a3a1a5a1a7a1a1, context16, environment.getGenerator())))); } finally { environment .getTracer() .pushOutputNode( GenerationTracerUtil.getSNodePointer( environment.getOutputModel(), tnode19)); environment .getTracer() .closeTemplateNode( templateNode_kyghau_a0a0a1a5a4a1a3a1a3a1a5a1a7a1a1); } if (tnode19 != null) { tnode17.addChild("initializer", tnode19); } // TODO validate child } } finally { environment .getTracer() .pushOutputNode( GenerationTracerUtil.getSNodePointer( environment.getOutputModel(), tnode17)); environment .getTracer() .closeTemplateNode(templateNode_kyghau_a0a0a4a1a3a1a3a1a5a1a7a1a1); } tlist16 = TemplateUtil.singletonList(tnode17); } finally { environment .getTracer() .closeMacro(varMacroRef_kyghau_a0a0a1a3a1a3a1a5a1a7a1a1); } for (SNode child20 : TemplateUtil.asNotNull(tlist16)) { tnode15.addChild("localVariableDeclaration", child20); } // TODO validate child } } finally { environment .getTracer() .pushOutputNode( GenerationTracerUtil.getSNodePointer( environment.getOutputModel(), tnode15)); environment .getTracer() .closeTemplateNode(templateNode_kyghau_a0a0a1a3a1a5a1a7a1a1); } if (tnode15 != null) { tnode14.addChild("statement", tnode15); } // TODO validate child } { final SNode tnode21 = new SNode("jetbrains.mps.baseLanguage.structure.ExpressionStatement"); try { environment .getTracer() .pushTemplateNode(templateNode_kyghau_a0a0a1a4a1a5a1a7a1a1); environment.nodeCopied( context, tnode21, "tpl/r:00000000-0000-4000-0000-011c89590606/5015072279636761140"); { final SNode tnode22 = new SNode("jetbrains.mps.baseLanguage.structure.AssignmentExpression"); try { environment .getTracer() .pushTemplateNode(templateNode_kyghau_a0a0a1a3a1a4a1a5a1a7a1a1); environment.nodeCopied( context, tnode22, "tpl/r:00000000-0000-4000-0000-011c89590606/5015072279636761142"); { final SNode tnode23 = new SNode( "jetbrains.mps.baseLanguage.structure.LocalInstanceFieldReference"); try { environment .getTracer() .pushTemplateNode(templateNode_kyghau_a0a0a1a3a1a3a1a4a1a5a1a7a1a1); environment.nodeCopied( context, tnode23, "tpl/r:00000000-0000-4000-0000-011c89590606/5015072279636761141"); environment.resolveInTemplateLater( tnode23, "variableDeclaration", new SNodePointer( "r:00000000-0000-4000-0000-011c89590606(jetbrains.mps.transformation.test.outputLang.generator.baseLanguage.template.main@generator)", "5015072279636761141"), "tpl/r:00000000-0000-4000-0000-011c89590606/5015072279636761135", "q", context); } finally { environment .getTracer() .pushOutputNode( GenerationTracerUtil.getSNodePointer( environment.getOutputModel(), tnode23)); environment .getTracer() .closeTemplateNode(templateNode_kyghau_a0a0a1a3a1a3a1a4a1a5a1a7a1a1); } if (tnode23 != null) { tnode22.addChild("lValue", tnode23); } // TODO validate child } { final SNode tnode24 = new SNode( "jetbrains.mps.baseLanguage.structure.LocalVariableReference"); try { environment .getTracer() .pushTemplateNode(templateNode_kyghau_a0a0a1a4a1a3a1a4a1a5a1a7a1a1); environment.nodeCopied( context, tnode24, "tpl/r:00000000-0000-4000-0000-011c89590606/5015072279636761145"); environment.resolveInTemplateLater( tnode24, "variableDeclaration", new SNodePointer( "r:00000000-0000-4000-0000-011c89590606(jetbrains.mps.transformation.test.outputLang.generator.baseLanguage.template.main@generator)", "5015072279636761145"), "tpl/r:00000000-0000-4000-0000-011c89590606/5015072279636761103", "i", context); } finally { environment .getTracer() .pushOutputNode( GenerationTracerUtil.getSNodePointer( environment.getOutputModel(), tnode24)); environment .getTracer() .closeTemplateNode(templateNode_kyghau_a0a0a1a4a1a3a1a4a1a5a1a7a1a1); } if (tnode24 != null) { tnode22.addChild("rValue", tnode24); } // TODO validate child } } finally { environment .getTracer() .pushOutputNode( GenerationTracerUtil.getSNodePointer( environment.getOutputModel(), tnode22)); environment .getTracer() .closeTemplateNode(templateNode_kyghau_a0a0a1a3a1a4a1a5a1a7a1a1); } if (tnode22 != null) { tnode21.addChild("expression", tnode22); } // TODO validate child } } finally { environment .getTracer() .pushOutputNode( GenerationTracerUtil.getSNodePointer( environment.getOutputModel(), tnode21)); environment .getTracer() .closeTemplateNode(templateNode_kyghau_a0a0a1a4a1a5a1a7a1a1); } if (tnode21 != null) { tnode14.addChild("statement", tnode21); } // TODO validate child } } finally { environment .getTracer() .pushOutputNode( GenerationTracerUtil.getSNodePointer(environment.getOutputModel(), tnode14)); environment.getTracer().closeTemplateNode(templateNode_kyghau_a0a0a1a5a1a7a1a1); } if (tnode14 != null) { tnode11.addChild("body", tnode14); } // TODO validate child } } finally { environment .getTracer() .pushOutputNode( GenerationTracerUtil.getSNodePointer(environment.getOutputModel(), tnode11)); environment.getTracer().closeTemplateNode(templateNode_kyghau_a0a0a1a7a1a1); } if (tnode11 != null) { tnode1.addChild("constructor", tnode11); } // TODO validate child } } finally { environment .getTracer() .pushOutputNode( GenerationTracerUtil.getSNodePointer(environment.getOutputModel(), tnode1)); environment.getTracer().closeTemplateNode(templateNode_kyghau_a0a0a1a1); } return TemplateUtil.singletonList(tnode1); }