package jetbrains.mps.lang.structure.findUsages; /*Generated by MPS */ import jetbrains.mps.ide.findusages.findalgorithm.finders.GeneratedFinder; import org.apache.log4j.Logger; import org.apache.log4j.LogManager; import org.jetbrains.mps.openapi.language.SAbstractConcept; import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory; import org.jetbrains.mps.openapi.model.SNode; import org.jetbrains.mps.openapi.module.SearchScope; import java.util.List; import org.jetbrains.mps.openapi.util.ProgressMonitor; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations; import jetbrains.mps.util.NameUtil; import org.jetbrains.mps.openapi.module.SModule; import jetbrains.mps.smodel.language.LanguageRuntime; import jetbrains.mps.smodel.language.LanguageRegistry; import jetbrains.mps.smodel.Language; import org.apache.log4j.Level; import jetbrains.mps.internal.collections.runtime.ListSequence; import java.util.ArrayList; import org.jetbrains.mps.openapi.module.FindUsagesFacade; import java.util.Collections; import org.jetbrains.annotations.Nullable; import org.jetbrains.mps.openapi.model.SNodeReference; import org.jetbrains.mps.openapi.model.SModel; public class ConceptInstances_Finder extends GeneratedFinder { private static final Logger LOG = LogManager.getLogger(ConceptInstances_Finder.class); public ConceptInstances_Finder() { } @Override public String getDescription() { return "Concept Instances"; } @Override public String getLongDescription() { return ""; } @Override public SAbstractConcept getSConcept() { return MetaAdapterFactory.getConcept(0xc72da2b97cce4447L, 0x8389f407dc1158b7L, 0x1103553c5ffL, "jetbrains.mps.lang.structure.structure.AbstractConceptDeclaration"); } @Override protected void doFind(SNode node, SearchScope scope, List<SNode> _results, ProgressMonitor monitor) { try { SAbstractConcept concept = SNodeOperations.asSConcept(node); if (concept == null) { // doesn't hurt to protect finder implementation from unexpected input StringBuilder sb = new StringBuilder(); sb.append("Concept is not found for concept declaration "); sb.append(NameUtil.nodeFQName(node)); sb.append(" finder will return empty results. "); SModule module = check_mbibnv_a0g0b0a(check_mbibnv_a0a6a1a0(node)); if (module != null) { LanguageRuntime runtime = LanguageRegistry.getInstance().getLanguage(((Language) module)); if (runtime != null) { sb.append("Language runtime class is " + runtime.getClass().getName()); } } if (LOG.isEnabledFor(Level.ERROR)) { LOG.error(sb.toString()); } return; } List<SNode> resNodes = ListSequence.fromListWithValues(new ArrayList<SNode>(), FindUsagesFacade.getInstance().findInstances(scope, Collections.singleton(concept), false, monitor)); for (SNode resNode : resNodes) { ListSequence.fromList(_results).addElement(((SNode) resNode)); } } finally { monitor.done(); } } @Override public String getNodeCategory(SNode node) { return "Concept Instances"; } @Nullable @Override public SNodeReference getDeclarationNode() { return buildNodePointer(FindUsagesDescriptor.DECLARING_MODEL, "1197632773078"); } private static SModule check_mbibnv_a0g0b0a(SModel checkedDotOperand) { if (null != checkedDotOperand) { return checkedDotOperand.getModule(); } return null; } private static SModel check_mbibnv_a0a6a1a0(SNode checkedDotOperand) { if (null != checkedDotOperand) { return checkedDotOperand.getModel(); } return null; } }