package jetbrains.mps.resolve; /*Generated by MPS */ import org.jetbrains.mps.openapi.model.SModel; import org.jetbrains.mps.openapi.module.SRepository; import org.jetbrains.mps.openapi.model.SModelReference; import jetbrains.mps.internal.collections.runtime.ListSequence; import jetbrains.mps.smodel.SModelOperations; import org.jetbrains.mps.openapi.model.SReference; import org.jetbrains.mps.openapi.model.SNode; import org.jetbrains.mps.openapi.module.SModule; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations; import jetbrains.mps.scope.Scope; import jetbrains.mps.smodel.constraints.ModelConstraints; public class ReferenceResolverUtils { public static boolean canExecuteImmediately(SModel model, SRepository repository) { if (repository == null) { return false; } for (SModelReference modelReference : ListSequence.fromList(SModelOperations.getImportedModelUIDs(model))) { if (modelReference.resolve(repository) == null) { return false; } } return true; } public static String getResolveInfo(SReference reference, SNode sourceNode) { String result = ((jetbrains.mps.smodel.SReference) reference).getResolveInfo(); if (result != null) { return result; } SModule module = check_y1vr00_a0c0b(SNodeOperations.getModel(sourceNode)); SNode target = jetbrains.mps.util.SNodeOperations.getTargetNodeSilently(reference); if (target != null && module != null) { Scope scope = ModelConstraints.getScope(reference); result = scope.getReferenceText(sourceNode, target); } return result; } private static SModule check_y1vr00_a0c0b(SModel checkedDotOperand) { if (null != checkedDotOperand) { return checkedDotOperand.getModule(); } return null; } }