Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Copyright (c) 2000, 2012 IBM Corporation and others. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html Contributors: IBM Corporation - initial API and implementation /
 
 package org.eclipse.jdt.internal.core.search.matching;
 
 import  org.eclipse.core.runtime.CoreException;
 
 public class OrLocator extends PatternLocator {
 
 
 public OrLocator(OrPattern pattern) {
 	super(pattern);
 
 	SearchPattern[] patterns = pattern.patterns;
 	int length = patterns.length;
 	this. = new PatternLocator[length];
 	for (int i = 0; i < lengthi++)
 		this.[i] = PatternLocator.patternLocator(patterns[i]);
 }
 public void initializePolymorphicSearch(MatchLocator locator) {
 	for (int i = 0, length = this..lengthi < lengthi++)
 }
 public int match(Annotation nodeMatchingNodeSet nodeSet) {
 	int level = ;
 	for (int i = 0, length = this..lengthi < lengthi++) {
 		int newLevel = this.[i].match(nodenodeSet);
 		if (newLevel > level) {
 			if (newLevel == return ;
 			level = newLevel;
 		}
 	}
 	return level;
 }
 public int match(ASTNode nodeMatchingNodeSet nodeSet) {
 	int level = ;
 	for (int i = 0, length = this..lengthi < lengthi++) {
 		int newLevel = this.[i].match(nodenodeSet);
 		if (newLevel > level) {
 			if (newLevel == return ;
 			level = newLevel;
 		}
 	}
 	return level;
 }
 public int match(ConstructorDeclaration nodeMatchingNodeSet nodeSet) {
 	int level = ;
 	for (int i = 0, length = this..lengthi < lengthi++) {
 		int newLevel = this.[i].match(nodenodeSet);
 		if (newLevel > level) {
 			if (newLevel == return ;
 			level = newLevel;
 		}
 	}
 	return level;
 }
 public int match(Expression nodeMatchingNodeSet nodeSet) {
 	int level = ;
 	for (int i = 0, length = this..lengthi < lengthi++) {
 		int newLevel = this.[i].match(nodenodeSet);
 		if (newLevel > level) {
 			if (newLevel == return ;
 			level = newLevel;
 		}
 	}
 	return level;
 }
 public int match(FieldDeclaration nodeMatchingNodeSet nodeSet) {
	int level = ;
	for (int i = 0, length = this..lengthi < lengthi++) {
		int newLevel = this.[i].match(nodenodeSet);
		if (newLevel > level) {
			if (newLevel == return ;
			level = newLevel;
		}
	}
	return level;
public int match(LocalDeclaration nodeMatchingNodeSet nodeSet) {
	int level = ;
	for (int i = 0, length = this..lengthi < lengthi++) {
		int newLevel = this.[i].match(nodenodeSet);
		if (newLevel > level) {
			if (newLevel == return ;
			level = newLevel;
		}
	}
	return level;
public int match(MethodDeclaration nodeMatchingNodeSet nodeSet) {
	int level = ;
	for (int i = 0, length = this..lengthi < lengthi++) {
		int newLevel = this.[i].match(nodenodeSet);
		if (newLevel > level) {
			if (newLevel == return ;
			level = newLevel;
		}
	}
	return level;
public int match(MemberValuePair nodeMatchingNodeSet nodeSet) {
	int level = ;
	for (int i = 0, length = this..lengthi < lengthi++) {
		int newLevel = this.[i].match(nodenodeSet);
		if (newLevel > level) {
			if (newLevel == return ;
			level = newLevel;
		}
	}
	return level;
public int match(MessageSend nodeMatchingNodeSet nodeSet) {
	int level = ;
	for (int i = 0, length = this..lengthi < lengthi++) {
		int newLevel = this.[i].match(nodenodeSet);
		if (newLevel > level) {
			if (newLevel == return ;
			level = newLevel;
		}
	}
	return level;
public int match(Reference nodeMatchingNodeSet nodeSet) {
	int level = ;
	for (int i = 0, length = this..lengthi < lengthi++) {
		int newLevel = this.[i].match(nodenodeSet);
		if (newLevel > level) {
			if (newLevel == return ;
			level = newLevel;
		}
	}
	return level;
public int match(TypeDeclaration nodeMatchingNodeSet nodeSet) {
	int level = ;
	for (int i = 0, length = this..lengthi < lengthi++) {
		int newLevel = this.[i].match(nodenodeSet);
		if (newLevel > level) {
			if (newLevel == return ;
			level = newLevel;
		}
	}
	return level;
public int match(TypeParameter nodeMatchingNodeSet nodeSet) {
	int level = ;
	for (int i = 0, length = this..lengthi < lengthi++) {
		int newLevel = this.[i].match(nodenodeSet);
		if (newLevel > level) {
			if (newLevel == return ;
			level = newLevel;
		}
	}
	return level;
public int match(TypeReference nodeMatchingNodeSet nodeSet) {
	int level = ;
	for (int i = 0, length = this..lengthi < lengthi++) {
		int newLevel = this.[i].match(nodenodeSet);
		if (newLevel > level) {
			if (newLevel == return ;
			level = newLevel;
		}
	}
	return level;
protected int matchContainer() {
	int result = 0;
	for (int i = 0, length = this..lengthi < lengthi++)
		result |= this.[i].matchContainer();
	return result;
protected void matchLevelAndReportImportRef(ImportReference importRefBinding bindingMatchLocator locatorthrows CoreException {
	// for static import, binding can be a field binding or a member type binding
	// verify that in this case binding is static and use declaring class for fields
	Binding refBinding = binding;
	if (importRef.isStatic()) {
		if (binding instanceof FieldBinding) {
			FieldBinding fieldBinding = (FieldBindingbinding;
			if (!fieldBinding.isStatic()) return;
			refBinding = fieldBinding.declaringClass;
else if (binding instanceof MethodBinding) {
			MethodBinding methodBinding = (MethodBindingbinding;
			if (!methodBinding.isStatic()) return;
			refBinding = methodBinding.declaringClass;
else if (binding instanceof MemberTypeBinding) {
			MemberTypeBinding memberBinding = (MemberTypeBindingbinding;
			if (!memberBinding.isStatic()) return;
		}
	}
	// Look for closest pattern
	PatternLocator closestPattern = null;
	int level = ;
	for (int i = 0, length = this..lengthi < lengthi++) {
		PatternLocator patternLocator = this.[i];
		int newLevel = patternLocator.referenceType() == 0 ?  : patternLocator.resolveLevel(refBinding);
		if (newLevel > level) {
			closestPattern = patternLocator;
			if (newLevel == break;
			level = newLevel;
		}
	}
	if (closestPattern != null) {
		closestPattern.matchLevelAndReportImportRef(importRefbindinglocator);
	}
protected void matchReportImportRef(ImportReference importRefBinding bindingIJavaElement elementint accuracyMatchLocator locatorthrows CoreException {
	PatternLocator closestPattern = null;
	int level = ;
	for (int i = 0, length = this..lengthi < lengthi++) {
		int newLevel = this.[i].matchLevel(importRef);
		if (newLevel > level) {
			closestPattern = this.[i];
			if (newLevel == break;
			level = newLevel;
		}
	}
	if (closestPattern != null)
		closestPattern.matchReportImportRef(importRefbindingelementaccuracylocator);
protected void matchReportReference(ASTNode referenceIJavaElement elementIJavaElement localElementIJavaElement[] otherElementsBinding elementBindingint accuracyMatchLocator locatorthrows CoreException {
	PatternLocator closestPattern = null;
	int level = ;
	for (int i = 0, length = this..lengthi < lengthi++) {
		PatternLocator patternLocator = this.[i];
		int newLevel = patternLocator.referenceType() == 0 ?  : patternLocator.resolveLevel(reference);
		if (newLevel > level) {
			closestPattern = patternLocator;
			if (newLevel == break;
			level = newLevel;
		}
	}
	if (closestPattern != null)
		closestPattern.matchReportReference(referenceelementlocalElementotherElementselementBindingaccuracylocator);
protected void matchReportReference(ASTNode referenceIJavaElement elementBinding elementBindingint accuracyMatchLocator locatorthrows CoreException {
	matchReportReference(referenceelementnullnullelementBindingaccuracylocator);
public SearchMatch newDeclarationMatch(ASTNode referenceIJavaElement elementBinding elementBindingint accuracyint lengthMatchLocator locator) {
	PatternLocator closestPattern = null;
	int level = ;
	for (int i = 0, pl = this..lengthi < pli++) {
		PatternLocator patternLocator = this.[i];
		int newLevel = patternLocator.referenceType() == 0 ?  : patternLocator.resolveLevel(reference);
		if (newLevel > level) {
			closestPattern = patternLocator;
			if (newLevel == break;
			level = newLevel;
		}
	}
	if (closestPattern != null) {
	    return closestPattern.newDeclarationMatch(referenceelementelementBindingaccuracylengthlocator);
	}
	// super implementation...
    return locator.newDeclarationMatch(elementelementBindingaccuracyreference.sourceStartlength);
public int resolveLevel(ASTNode node) {
	int level = ;
	for (int i = 0, length = this..lengthi < lengthi++) {
		int newLevel = this.[i].resolveLevel(node);
		if (newLevel > level) {
			if (newLevel == return ;
			level = newLevel// want to answer the stronger match
		}
	}
	return level;
public int resolveLevel(Binding binding) {
	int level = ;
	for (int i = 0, length = this..lengthi < lengthi++) {
		int newLevel = this.[i].resolveLevel(binding);
		if (newLevel > level) {
			if (newLevel == return ;
			level = newLevel// want to answer the stronger match
		}
	}
	return level;
/* (non-Javadoc)
 * @see org.eclipse.jdt.internal.core.search.matching.PatternLocator#setFlavors(int)
 */
void setFlavors(int flavors) {
	for (int i = 0, length = this..lengthi < lengthi++) {
		this.[i].setFlavors(flavors);
	}
public void recordResolution(QualifiedTypeReference typeReferenceTypeBinding resolution) {
	for (int i = 0, length = this..lengthi < lengthi++) {
		this.[i].recordResolution(typeReferenceresolution);
	}
New to GrepCode? Check out our FAQ X