public void applyRule(
     final SNode conceptDeclaration,
     final TypeCheckingContext typeCheckingContext,
     IsApplicableStatus status) {
   if (SPropertyOperations.getBoolean(
       conceptDeclaration,
       MetaAdapterFactory.getProperty(
           0xc72da2b97cce4447L,
           0x8389f407dc1158b7L,
           0x1103553c5ffL,
           0x403a32c5772c7ec2L,
           "abstract"))) {
     return;
   }
   Queue<SNode> toCheck = QueueSequence.fromQueue(new LinkedList<SNode>());
   QueueSequence.fromQueue(toCheck).addLastElement(conceptDeclaration);
   while (QueueSequence.fromQueue(toCheck).isNotEmpty()) {
     SNode acd = QueueSequence.fromQueue(toCheck).removeFirstElement();
     List<SNode> aspects =
         AbstractConceptDeclaration_BehaviorDescriptor.findConceptAspectCollection_id1n18fON7w20
             .invoke(acd, LanguageAspect.EDITOR);
     if (!((acd
             == SNodeOperations.getNode(
                 "r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)",
                 "1133920641626")))
         && ListSequence.fromList(aspects)
             .any(
                 new IWhereFilter<SNode>() {
                   public boolean accept(SNode a) {
                     return SNodeOperations.isInstanceOf(
                         a,
                         MetaAdapterFactory.getConcept(
                             0x18bc659203a64e29L,
                             0xa83a7ff23bde13baL,
                             0xf9845363abL,
                             "jetbrains.mps.lang.editor.structure.ConceptEditorDeclaration"));
                   }
                 })) {
       return;
     }
     QueueSequence.fromQueue(toCheck)
         .addSequence(
             ListSequence.fromList(
                 AbstractConceptDeclaration_BehaviorDescriptor.getImmediateSuperconcepts_idhMuxyK2
                     .invoke(acd)));
   }
   {
     MessageTarget errorTarget = new NodeMessageTarget();
     errorTarget = new PropertyMessageTarget("name");
     IErrorReporter _reporter_2309309498 =
         typeCheckingContext.reportInfo(
             conceptDeclaration,
             "Editor for concept "
                 + SPropertyOperations.getString(
                     conceptDeclaration,
                     MetaAdapterFactory.getProperty(
                         0xceab519525ea4f22L,
                         0x9b92103b95ca8c0cL,
                         0x110396eaaa4L,
                         0x110396ec041L,
                         "name"))
                 + " is not defined. Default editor will be used.",
             "r:00000000-0000-4000-0000-011c8959028f(jetbrains.mps.lang.structure.typesystem)",
             "2823239769520680200",
             null,
             errorTarget);
   }
 }