private void cleanDeclaration()

in mps-build-deprecated/languages/generictasks/source_gen/jetbrains/mps/build/generictasks/taskfromjar/Generator.java [79:140]


  private void cleanDeclaration(final SNode decl) {
    Set<SNode> toRemoveNestedReference = SetSequence.fromSet(new HashSet());
    for (SNode nref : SLinkOperations.getChildren(decl, MetaAdapterFactory.getContainmentLink(0xfba399dbf59145dcL, 0xa279e2a2a986e262L, 0x4e8ed5afd64781eL, 0x4e8ed5afd647821L, "nested"))) {
      for (SNode ref : SLinkOperations.getChildren(decl, MetaAdapterFactory.getContainmentLink(0xfba399dbf59145dcL, 0xa279e2a2a986e262L, 0x4e8ed5afd64781eL, 0x4e8ed5afd647821L, "nested"))) {
        if (eq_ixz87t_a0a0a0b0h(ref, nref)) {
          continue;
        }
        if (eq_ixz87t_a0b0a0b0h(SPropertyOperations.getString(SLinkOperations.getTarget(ref, MetaAdapterFactory.getReferenceLink(0xfba399dbf59145dcL, 0xa279e2a2a986e262L, 0x2a288bb6092eb471L, 0x2a288bb6092eb472L, "declaration")), MetaAdapterFactory.getProperty(0xfba399dbf59145dcL, 0xa279e2a2a986e262L, 0x4f18dcd3e11fd69cL, 0x6ada57b64f3f7e8cL, "classname")), SPropertyOperations.getString(SLinkOperations.getTarget(nref, MetaAdapterFactory.getReferenceLink(0xfba399dbf59145dcL, 0xa279e2a2a986e262L, 0x2a288bb6092eb471L, 0x2a288bb6092eb472L, "declaration")), MetaAdapterFactory.getProperty(0xfba399dbf59145dcL, 0xa279e2a2a986e262L, 0x4f18dcd3e11fd69cL, 0x6ada57b64f3f7e8cL, "classname")))) {
          SetSequence.fromSet(toRemoveNestedReference).addElement(ref);
        }
      }
    }
    SetSequence.fromSet(toRemoveNestedReference).visitAll(new IVisitor<SNode>() {
      public void visit(SNode it) {
        ListSequence.fromList(SNodeOperations.getChildren(decl)).removeElement(it);
        ListSequence.fromList(SLinkOperations.getChildren(it, MetaAdapterFactory.getContainmentLink(0xfba399dbf59145dcL, 0xa279e2a2a986e262L, 0x4e8ed5afd64782aL, 0x4e8ed5afd64782bL, "role"))).where(new IWhereFilter<SNode>() {
          public boolean accept(SNode roleRef) {
            return SPropertyOperations.getBoolean(SNodeOperations.cast(SLinkOperations.getTarget(roleRef, MetaAdapterFactory.getReferenceLink(0xfba399dbf59145dcL, 0xa279e2a2a986e262L, 0x2a288bb6092eb471L, 0x2a288bb6092eb472L, "declaration")), MetaAdapterFactory.getConcept(0xfba399dbf59145dcL, 0xa279e2a2a986e262L, 0x4e8ed5afd64781eL, "jetbrains.mps.build.generictasks.structure.BuiltInTaskDeclaration")), MetaAdapterFactory.getProperty(0xfba399dbf59145dcL, 0xa279e2a2a986e262L, 0x4e8ed5afd64781eL, 0x4e8ed5afd647828L, "fake"));
          }
        }).visitAll(new IVisitor<SNode>() {
          public void visit(SNode child) {
            ListSequence.fromList(SNodeOperations.getChildren(decl)).removeElement(SLinkOperations.getTarget(child, MetaAdapterFactory.getReferenceLink(0xfba399dbf59145dcL, 0xa279e2a2a986e262L, 0x2a288bb6092eb471L, 0x2a288bb6092eb472L, "declaration")));
          }
        });
      }
    });
    ListSequence.fromList(SLinkOperations.getChildren(decl, MetaAdapterFactory.getContainmentLink(0xfba399dbf59145dcL, 0xa279e2a2a986e262L, 0x4e8ed5afd64781eL, 0x4e8ed5afd647823L, "fakeDeclaration"))).visitAll(new IVisitor<SNode>() {
      public void visit(SNode it) {
        SPropertyOperations.set(it, MetaAdapterFactory.getProperty(0xfba399dbf59145dcL, 0xa279e2a2a986e262L, 0x4e8ed5afd64781eL, 0x4e8ed5afd647828L, "fake"), "" + (true));
      }
    });

    Set<SNode> toRemoveFakeDeclaration = SetSequence.fromSet(new HashSet());
    SetSequence.fromSet(toRemoveFakeDeclaration).addSequence(ListSequence.fromList(SLinkOperations.getChildren(decl, MetaAdapterFactory.getContainmentLink(0xfba399dbf59145dcL, 0xa279e2a2a986e262L, 0x4e8ed5afd64781eL, 0x4e8ed5afd647823L, "fakeDeclaration"))));
    for (SNode nref : SLinkOperations.getChildren(decl, MetaAdapterFactory.getContainmentLink(0xfba399dbf59145dcL, 0xa279e2a2a986e262L, 0x4e8ed5afd64781eL, 0x4e8ed5afd647821L, "nested"))) {
      List<SNode> notRemove = ListSequence.fromList(SLinkOperations.getChildren(nref, MetaAdapterFactory.getContainmentLink(0xfba399dbf59145dcL, 0xa279e2a2a986e262L, 0x4e8ed5afd64782aL, 0x4e8ed5afd64782bL, "role"))).select(new ISelector<SNode, SNode>() {
        public SNode select(SNode it) {
          return SNodeOperations.cast(SLinkOperations.getTarget(it, MetaAdapterFactory.getReferenceLink(0xfba399dbf59145dcL, 0xa279e2a2a986e262L, 0x2a288bb6092eb471L, 0x2a288bb6092eb472L, "declaration")), MetaAdapterFactory.getConcept(0xfba399dbf59145dcL, 0xa279e2a2a986e262L, 0x4e8ed5afd64781eL, "jetbrains.mps.build.generictasks.structure.BuiltInTaskDeclaration"));
        }
      }).where(new IWhereFilter<SNode>() {
        public boolean accept(SNode it) {
          return SPropertyOperations.getBoolean(it, MetaAdapterFactory.getProperty(0xfba399dbf59145dcL, 0xa279e2a2a986e262L, 0x4e8ed5afd64781eL, 0x4e8ed5afd647828L, "fake"));
        }
      }).toListSequence();
      SetSequence.fromSet(toRemoveFakeDeclaration).removeSequence(ListSequence.fromList(notRemove));
    }
    SetSequence.fromSet(toRemoveFakeDeclaration).visitAll(new IVisitor<SNode>() {
      public void visit(SNode it) {
        ListSequence.fromList(SNodeOperations.getChildren(decl)).removeElement(it);
      }
    });
    for (final SNode nref : SLinkOperations.getChildren(decl, MetaAdapterFactory.getContainmentLink(0xfba399dbf59145dcL, 0xa279e2a2a986e262L, 0x4e8ed5afd64781eL, 0x4e8ed5afd647821L, "nested"))) {
      SNode node = ListSequence.fromList(SLinkOperations.getChildren(nref, MetaAdapterFactory.getContainmentLink(0xfba399dbf59145dcL, 0xa279e2a2a986e262L, 0x4e8ed5afd64782aL, 0x4e8ed5afd64782bL, "role"))).where(new IWhereFilter<SNode>() {
        public boolean accept(SNode it) {
          SNode biDecl = SNodeOperations.cast(SLinkOperations.getTarget(it, MetaAdapterFactory.getReferenceLink(0xfba399dbf59145dcL, 0xa279e2a2a986e262L, 0x2a288bb6092eb471L, 0x2a288bb6092eb472L, "declaration")), MetaAdapterFactory.getConcept(0xfba399dbf59145dcL, 0xa279e2a2a986e262L, 0x4e8ed5afd64781eL, "jetbrains.mps.build.generictasks.structure.BuiltInTaskDeclaration"));
          return SPropertyOperations.getBoolean(biDecl, MetaAdapterFactory.getProperty(0xfba399dbf59145dcL, 0xa279e2a2a986e262L, 0x4e8ed5afd64781eL, 0x4e8ed5afd647828L, "fake")) && eq_ixz87t_a0a1a0a0a0a0a0a9a7(SPropertyOperations.getString(biDecl, MetaAdapterFactory.getProperty(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L, 0x110396ec041L, "name")), SPropertyOperations.getString(SLinkOperations.getTarget(nref, MetaAdapterFactory.getReferenceLink(0xfba399dbf59145dcL, 0xa279e2a2a986e262L, 0x2a288bb6092eb471L, 0x2a288bb6092eb472L, "declaration")), MetaAdapterFactory.getProperty(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L, 0x110396ec041L, "name")));
        }
      }).first();
      ListSequence.fromList(SNodeOperations.getChildren(nref)).removeElement(node);
      ListSequence.fromList(SNodeOperations.getChildren(decl)).removeElement(SLinkOperations.getTarget(node, MetaAdapterFactory.getReferenceLink(0xfba399dbf59145dcL, 0xa279e2a2a986e262L, 0x2a288bb6092eb471L, 0x2a288bb6092eb472L, "declaration")));
    }
  }