package jetbrains.mps.smodel.search; /*Generated by MPS */ import org.jetbrains.mps.util.Condition; import org.jetbrains.mps.openapi.model.SNode; import org.jetbrains.mps.openapi.model.SModelReference; import jetbrains.mps.util.SNodeOperations; import org.jetbrains.annotations.NotNull; import java.util.List; public abstract class AbstractSearchScope implements ISearchScope { protected static final Condition<SNode> TRUE_CONDITION = new Condition<SNode>() { @Override public boolean met(SNode object) { return true; } }; public AbstractSearchScope() { } @Override public IReferenceInfoResolver getReferenceInfoResolver(SNode referenceNode, SNode targetConcept) { return new IReferenceInfoResolver() { @Override public SNode resolve(String referenceInfo, SModelReference targetModelReference) { if (referenceInfo == null) { return null; } for (SNode node : getNodes()) { if (referenceInfo.equals(SNodeOperations.getResolveInfo(node))) { return node; } } return null; } }; } @NotNull @Override public final List<SNode> getNodes() { return getNodes(TRUE_CONDITION); } @Override public boolean isInScope(final SNode node) { return getNodes(new Condition<SNode>() { @Override public boolean met(SNode n) { return n == node; } }).size() > 0; } }