public static void setBoolean(SNode node, String propertyName, boolean value) { if (node != null) { SNode conceptProperty = (SNode) findProperty(node, propertyName); if (SNodeOperations.isInstanceOf( conceptProperty, "jetbrains.mps.lang.structure.structure.BooleanConceptProperty") && !(value)) { node.removeChild(conceptProperty); } else if (conceptProperty == null && value) { for (SNode cpd : (List<SNode>) SModelSearchUtil.getConceptPropertyDeclarations(node)) { if (SPropertyOperations.getString(cpd, "name").equals(propertyName)) { if (SNodeOperations.isInstanceOf( cpd, "jetbrains.mps.lang.structure.structure.BooleanConceptPropertyDeclaration")) { SNode bcp = SModelOperations.createNewNode( SNodeOperations.getModel(node), null, "jetbrains.mps.lang.structure.structure.BooleanConceptProperty"); SLinkOperations.setTarget( bcp, "conceptPropertyDeclaration", SNodeOperations.cast( cpd, "jetbrains.mps.lang.structure.structure.BooleanConceptPropertyDeclaration"), false); ListSequence.fromList(SLinkOperations.getTargets(node, "conceptProperty", true)) .addElement(bcp); break; } } } } } }
public static SNode setNewChild(SNode node, String role, String childConceptFQName) { if (node != null) { SNode newChild = SModelOperations.createNewNode(node.getModel(), childConceptFQName); SLinkOperations.setTarget(node, role, newChild, true); return newChild; } return null; }
public static SNode addNewChild(SNode node, String role, String childConceptFQName) { if (node != null) { SNode newChild = SModelOperations.createNewNode(node.getModel(), childConceptFQName); node.addChild(role, newChild); return newChild; } return null; }
public static SNode createAndAddAttribute( SNode node, IAttributeDescriptor descriptor, SConcept newConceptFqname) { SModel model = SNodeOperations.getModel(node); return addAttribute( node, descriptor, (SNode) SModelOperations.createNewNode(model, null, newConceptFqname)); }