public void process() { VisibleArtifacts artifacts = new VisibleArtifacts(project, genContext); artifacts.collect(); UnpackHelper helper = new UnpackHelper(artifacts, genContext); for (SNode dep : SNodeOperations.getDescendants( project, "jetbrains.mps.build.structure.BuildExternalDependency", false, new String[] {})) { BehaviorReflection.invokeVirtual( Void.class, dep, "virtual_fetchDependencies_5908258303322131137", new Object[] { artifacts, new FetchDependenciesProcessor.RequiredDependenciesBuilderImpl(artifacts, dep, helper) }); } helper.eval(); List<SNode> statements = helper.getStatements(); if (!(ListSequence.fromList(statements).isEmpty())) { SNode wf = SModelOperations.createNewNode( SNodeOperations.getModel(project), null, "jetbrains.mps.build.structure.BuildCustomWorkflow"); SNode taskpart = SModelOperations.createNewNode( SNodeOperations.getModel(project), null, "jetbrains.mps.build.workflow.structure.BwfTaskPart"); SLinkOperations.setTarget( taskpart, "task", SLinkOperations.getTarget(_quotation_createNode_t02zqv_a0a2a7a3(), "target", false), false); ListSequence.fromList(SLinkOperations.getTargets(wf, "parts", true)).addElement(taskpart); SNode stask = SModelOperations.createNewNode( SNodeOperations.getModel(project), null, "jetbrains.mps.build.workflow.structure.BwfSubTask"); SPropertyOperations.set(stask, "name", "fetch"); ListSequence.fromList(SLinkOperations.getTargets(taskpart, "subTasks", true)) .addElement(stask); ListSequence.fromList(SLinkOperations.getTargets(stask, "statements", true)) .addSequence(ListSequence.fromList(statements)); ListSequence.fromList(SLinkOperations.getTargets(project, "aspects", true)).addElement(wf); } }
@Override public void add(SNode node) { if (!(check(node))) { return; } helper.add(node, false, null); }
@Override public void addWithContent(SNode node) { if (!(check(node))) { return; } helper.add(node, true, null); }
@Override public void add(SNode node, Object artifactId) { if (!(check(node)) || !(checkArtifactId(artifactId))) { return; } helper.add(node, false, artifactId); }