コード例 #1
0
  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);
    }
  }
コード例 #2
0
 @Override
 public void add(SNode node) {
   if (!(check(node))) {
     return;
   }
   helper.add(node, false, null);
 }
コード例 #3
0
 @Override
 public void addWithContent(SNode node) {
   if (!(check(node))) {
     return;
   }
   helper.add(node, true, null);
 }
コード例 #4
0
 @Override
 public void add(SNode node, Object artifactId) {
   if (!(check(node)) || !(checkArtifactId(artifactId))) {
     return;
   }
   helper.add(node, false, artifactId);
 }