@Override public boolean isSubConceptOf(SAbstractConcept concept) { if (!(concept instanceof SConceptNodeAdapterBase)) { throw new IllegalArgumentException("not supported"); } return SModelUtil.isAssignableConcept( myConceptName, ((SConceptNodeAdapterBase) concept).myConceptName); }
public IReferenceInfoResolver getReferenceInfoResolver(SNode referenceNode, SNode targetConcept) { if (SModelUtil.isAssignableConcept( NameUtil.nodeFQName(targetConcept), "jetbrains.mps.baseLanguage.structure.ConstructorDeclaration")) { if (SNodeOperations.isInstanceOf( referenceNode, "jetbrains.mps.baseLanguage.structure.ClassCreator")) { SNode classCreator = SNodeOperations.cast( referenceNode, "jetbrains.mps.baseLanguage.structure.ClassCreator"); return new VisibleClassConstructorsScope.ConstructorDeclarationReferenceInfoResolver( SLinkOperations.getTargets(classCreator, "actualArgument", true), SLinkOperations.getTargets(classCreator, "typeParameter", true), getModel(), getScope()); } } return super.getReferenceInfoResolver(referenceNode, targetConcept); }
@Override public IReferenceInfoResolver getReferenceInfoResolver(SNode referenceNode, SNode targetConcept) { if (SModelUtil.isAssignableConcept( targetConcept, SConceptOperations.findConceptDeclaration( "jetbrains.mps.baseLanguage.structure.LocalVariableDeclaration"))) { return new IReferenceInfoResolver() { @Override public SNode resolve(String referenceInfo, SModelReference targetModelReference) { if (referenceInfo == null) { return null; } for (SNode node : LocalVariablesScope.this.getNodes(AbstractSearchScope.TRUE_CONDITION)) { if (referenceInfo.equals(node.getName())) { return node; } } return null; } }; } return super.getReferenceInfoResolver(referenceNode, targetConcept); }