Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Copyright (c) 2000, 2011 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;
 
 
 import  org.eclipse.core.resources.IResource;
 import  org.eclipse.core.runtime.IPath;
 import  org.eclipse.core.runtime.IProgressMonitor;
 
 
 public class LocalVariable extends SourceRefElement implements ILocalVariable {
 
 	public static final ILocalVariable[] NO_LOCAL_VARIABLES = new ILocalVariable[0];
 	
 	public int nameStartnameEnd;
 	public IAnnotation[] annotations;
 	private int flags;
 	private boolean isParameter;
 
 	public LocalVariable(
 			JavaElement parent,
 			String name,
 			int declarationSourceStart,
 			int declarationSourceEnd,
 			int nameStart,
 			int nameEnd,
 			String typeSignature,
 			int flags,
 			boolean isParameter) {
 
 		super(parent);
 		this. = name;
 		this. = declarationSourceStart;
 		this. = declarationSourceEnd;
 		this. = nameStart;
 		this. = nameEnd;
 		this. = typeSignature;
 		this. = getAnnotations(astAnnotations);
 		this. = flags;
 		this. = isParameter;
 	}
 
 	protected void closing(Object info) {
 		// a local variable has no info
 	}
 
 	protected Object createElementInfo() {
 		// a local variable has no info
 		return null;
 	}
 
 	public boolean equals(Object o) {
 		if (!(o instanceof LocalVariable)) return false;
 		LocalVariable other = (LocalVariable)o;
 		return
 			this. == other.declarationSourceStart
 			&& this. == other.declarationSourceEnd
 			&& this. == other.nameStart
 			&& this. == other.nameEnd
 			&& super.equals(o);
 	}
 
 	public boolean exists() {
 		return this..exists(); // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=46192
 	}
 
 	protected void generateInfos(Object infoHashMap newElements, IProgressMonitor pm) {
 		// a local variable has no info
 	}
 
	public IAnnotation getAnnotation(String annotationName) {
		for (int i = 0, length = this..lengthi < lengthi++) {
			IAnnotation annotation = this.[i];
			if (annotation.getElementName().equals(annotationName))
				return annotation;
		}
		return super.getAnnotation(annotationName);
	}
		return this.;
	}
		int length;
		if (astAnnotations == null || (length = astAnnotations.length) == 0)
		IAnnotation[] result = new IAnnotation[length];
		for (int i = 0; i < lengthi++) {
			result[i] = getAnnotation(astAnnotations[i], this);
		}
		return result;
	}
	private IAnnotation getAnnotation(final org.eclipse.jdt.internal.compiler.ast.Annotation annotationJavaElement parentElement) {
		final int typeStart = annotation.type.sourceStart();
		final int typeEnd = annotation.type.sourceEnd();
		final int sourceStart = annotation.sourceStart();
		final int sourceEnd = annotation.declarationSourceEnd;
		class LocalVarAnnotation extends Annotation {
			public LocalVarAnnotation(JavaElement localVarString elementName) {
				super(localVarelementName);
			}
				return this.;
			}
				return new SourceRange(typeStarttypeEnd - typeStart + 1);
			}
				return new SourceRange(sourceStartsourceEnd - sourceStart + 1);
			}
			public boolean exists() {
				return this..exists();
			}
		}
		String annotationName = new String(CharOperation.concatWith(annotation.type.getTypeName(), '.'));
		LocalVarAnnotation localVarAnnotation = new LocalVarAnnotation(parentElementannotationName);
		org.eclipse.jdt.internal.compiler.ast.MemberValuePair[] astMemberValuePairs = annotation.memberValuePairs();
		int length;
		IMemberValuePair[] memberValuePairs;
		if (astMemberValuePairs == null || (length = astMemberValuePairs.length) == 0) {
			memberValuePairs = .;
else {
			memberValuePairs = new IMemberValuePair[length];
			for (int i = 0; i < lengthi++) {
				org.eclipse.jdt.internal.compiler.ast.MemberValuePair astMemberValuePair = astMemberValuePairs[i];
				MemberValuePair memberValuePair = new MemberValuePair(new String(astMemberValuePair.name));
				memberValuePair.value = getAnnotationMemberValue(memberValuePairastMemberValuePair.valuelocalVarAnnotation);
				memberValuePairs[i] = memberValuePair;
			}
		}
		localVarAnnotation.memberValuePairs = memberValuePairs;
		return localVarAnnotation;
	}
	/*
	 * Creates the value wrapper from the given expression, and sets the valueKind on the given memberValuePair
	 */
	private Object getAnnotationMemberValue(MemberValuePair memberValuePairExpression expressionJavaElement parentElement) {
		if (expression instanceof NullLiteral) {
			return null;
else if (expression instanceof Literal) {
			((Literalexpression).computeConstant();
			return Util.getAnnotationMemberValue(memberValuePairexpression.constant);
else if (expression instanceof org.eclipse.jdt.internal.compiler.ast.Annotation) {
			memberValuePair.valueKind = .;
			return getAnnotation((org.eclipse.jdt.internal.compiler.ast.AnnotationexpressionparentElement);
else if (expression instanceof ClassLiteralAccess) {
			ClassLiteralAccess classLiteral = (ClassLiteralAccessexpression;
			char[] typeName = CharOperation.concatWith(classLiteral.type.getTypeName(), '.');
			memberValuePair.valueKind = .;
			return new String(typeName);
else if (expression instanceof QualifiedNameReference) {
			char[] qualifiedName = CharOperation.concatWith(((QualifiedNameReferenceexpression).'.');
			memberValuePair.valueKind = .;
			return new String(qualifiedName);
else if (expression instanceof SingleNameReference) {
			char[] simpleName = ((SingleNameReferenceexpression).;
			if (simpleName == .) {
				memberValuePair.valueKind = .;
				return null;
			}
			memberValuePair.valueKind = .;
			return new String(simpleName);
else if (expression instanceof ArrayInitializer) {
			memberValuePair.valueKind = -1; // modified below by the first call to getMemberValue(...)
			Expression[] expressions = ((ArrayInitializerexpression).;
			int length = expressions == null ? 0 : expressions.length;
			Object[] values = new Object[length];
			for (int i = 0; i < lengthi++) {
				int previousValueKind = memberValuePair.valueKind;
				Object value = getAnnotationMemberValue(memberValuePairexpressions[i], parentElement);
				if (previousValueKind != -1 && memberValuePair.valueKind != previousValueKind) {
					// values are heterogeneous, value kind is thus unknown
					memberValuePair.valueKind = .;
				}
				values[i] = value;
			}
			if (memberValuePair.valueKind == -1)
				memberValuePair.valueKind = .;
			return values;
else if (expression instanceof UnaryExpression) {			//to deal with negative numerals (see bug - 248312)
			UnaryExpression unaryExpression = (UnaryExpressionexpression;
			if ((unaryExpression.bits & .) >> . == .) {
				if (unaryExpression.expression instanceof Literal) {
					Literal subExpression = (LiteralunaryExpression.expression;
					subExpression.computeConstant();
					return Util.getNegativeAnnotationMemberValue(memberValuePairsubExpression.constant);
				}
			}
			memberValuePair.valueKind = .;
			return null;
else {
			memberValuePair.valueKind = .;
			return null;
		}
	}
		switch (token.charAt(0)) {
			case :
				return getHandleUpdatingCountFromMemento(mementoowner);
		}
		return this;
	}
	/*
	 * @see JavaElement#getHandleMemento(StringBuffer)
	 */
	protected void getHandleMemento(StringBuffer buff) {
		buff.append(this.);
		buff.append(this.);
		buff.append(this.);
		buff.append(this.);
		buff.append(this.);
		if (this. > 1) {
		}
	}
	protected char getHandleMementoDelimiter() {
	}
	public IResource getCorrespondingResource() {
		return null;
	}

Since:
3.7
		return (IMemberthis.;
	}
	public String getElementName() {
		return this.;
	}
	public int getElementType() {
	}

Since:
3.7
	public int getFlags() {
		if (this. == -1) {
			if (mapper != null) {
				try {
					// ensure the class file's buffer is open so that source ranges are computed
					ClassFile classFile = (ClassFile)getClassFile();
					if (classFile != null) {
						classFile.getBuffer();
						return mapper.getFlags(this);
					}
catch(JavaModelException e) {
					// ignore
				}
			}
			return 0;
		}
	}

See also:
IMember.getClassFile()
		IJavaElement element = getParent();
		while (element instanceof IMember) {
			elementelement.getParent();
		}
		if (element instanceof IClassFile) {
			return (IClassFileelement;
		}
		return null;
	}

Since:
3.7
		if (this. == -1) {
			if (mapper != null) {
				try {
					// ensure the class file's buffer is open so that source ranges are computed
					ClassFile classFile = (ClassFile)getClassFile();
					if (classFile != null) {
						classFile.getBuffer();
						return mapper.getNameRange(this);
					}
catch(JavaModelException e) {
					// ignore
				}
			}
		}
		return new SourceRange(this.this.-this.+1);
	}
	public IPath getPath() {
		return this..getPath();
	}
	public IResource resource() {
		return this..resource();
	}

See also:
ISourceReference
	public String getSource() throws JavaModelException {
		IOpenable openable = this..getOpenableParent();
		IBuffer buffer = openable.getBuffer();
		if (buffer == null) {
			return null;
		}
		int offset = range.getOffset();
		int length = range.getLength();
		if (offset == -1 || length == 0 ) {
			return null;
		}
		try {
			return buffer.getText(offsetlength);
catch(RuntimeException e) {
			return null;
		}
	}

Since:
3.7
		if (this. == -1) {
			if (mapper != null) {
				// ensure the class file's buffer is open so that source ranges are computed
				ClassFile classFile = (ClassFile)getClassFile();
				if (classFile != null) {
					classFile.getBuffer();
					return mapper.getSourceRange(this);
				}
			}
		}
	}

Since:
3.7
	public ITypeRoot getTypeRoot() {
	}
		return this.;
	}
	public IResource getUnderlyingResource() throws JavaModelException {
	}
	public int hashCode() {
		return Util.combineHashCodes(this..hashCode(), this.);
	}

Since:
3.7
	public boolean isParameter() {
		return this.;
	}
	public boolean isStructureKnown() throws JavaModelException {
		return true;
	}
	protected void toStringInfo(int tabStringBuffer bufferObject infoboolean showResolvedInfo) {
		buffer.append(tabString(tab));
		if (info != ) {
			buffer.append(Signature.toString(getTypeSignature()));
			buffer.append(" "); //$NON-NLS-1$
		}
		toStringName(buffer);
	}
New to GrepCode? Check out our FAQ X