本文整理汇总了Java中org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment类的典型用法代码示例。如果您正苦于以下问题:Java LookupEnvironment类的具体用法?Java LookupEnvironment怎么用?Java LookupEnvironment使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
LookupEnvironment类属于org.eclipse.jdt.internal.compiler.lookup包,在下文中一共展示了LookupEnvironment类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getEnclosedElements
import org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment; //导入依赖的package包/类
@Override
public List<? extends Element> getEnclosedElements() {
PackageBinding binding = (PackageBinding)_binding;
LookupEnvironment environment = binding.environment;
char[][][] typeNames = null;
INameEnvironment nameEnvironment = binding.environment.nameEnvironment;
if (nameEnvironment instanceof FileSystem) {
typeNames = ((FileSystem) nameEnvironment).findTypeNames(binding.compoundName);
}
HashSet<Element> set = new HashSet<Element>();
if (typeNames != null) {
for (char[][] typeName : typeNames) {
ReferenceBinding type = environment.getType(typeName);
if (type != null && type.isValidBinding()) {
set.add(_env.getFactory().newElement(type));
}
}
}
ArrayList<Element> list = new ArrayList<Element>(set.size());
list.addAll(set);
return Collections.unmodifiableList(list);
}
示例2: setExtendedData
import org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment; //导入依赖的package包/类
protected void setExtendedData(
ITypeRoot typeRoot,
CompilationUnitDeclaration compilationUnitDeclaration,
LookupEnvironment lookupEnvironment,
Scope scope,
ASTNode astNode,
ASTNode astNodeParent,
WorkingCopyOwner owner,
CompletionParser parser) {
this.isExtended = true;
this.extendedContext =
new InternalExtendedCompletionContext(
this,
typeRoot,
compilationUnitDeclaration,
lookupEnvironment,
scope,
astNode,
astNodeParent,
owner,
parser);
}
示例3: InternalExtendedCompletionContext
import org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment; //导入依赖的package包/类
public InternalExtendedCompletionContext(
InternalCompletionContext completionContext,
ITypeRoot typeRoot,
CompilationUnitDeclaration compilationUnitDeclaration,
LookupEnvironment lookupEnvironment,
Scope assistScope,
ASTNode assistNode,
ASTNode assistNodeParent,
WorkingCopyOwner owner,
CompletionParser parser) {
this.completionContext = completionContext;
this.typeRoot = typeRoot;
this.compilationUnitDeclaration = compilationUnitDeclaration;
this.lookupEnvironment = lookupEnvironment;
this.assistScope = assistScope;
this.assistNode = assistNode;
this.assistNodeParent = assistNodeParent;
this.owner = owner;
this.parser = parser;
}
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:21,代码来源:InternalExtendedCompletionContext.java
示例4: processClassNames
import org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment; //导入依赖的package包/类
private ReferenceBinding[] processClassNames(LookupEnvironment environment) {
// check for .class file presence in case of apt processing
int length = this.classNames.length;
ReferenceBinding[] referenceBindings = new ReferenceBinding[length];
for (int i = 0; i < length; i++) {
String currentName = this.classNames[i];
char[][] compoundName = null;
if (currentName.indexOf('.') != -1) {
// consider names with '.' as fully qualified names
char[] typeName = currentName.toCharArray();
compoundName = CharOperation.splitOn('.', typeName);
} else {
compoundName = new char[][] { currentName.toCharArray() };
}
ReferenceBinding type = environment.getType(compoundName);
if (type != null && type.isValidBinding()) {
if (type.isBinaryBinding()) {
referenceBindings[i] = type;
}
} else {
throw new IllegalArgumentException(
this.bind("configure.invalidClassName", currentName));//$NON-NLS-1$
}
}
return referenceBindings;
}
示例5: copyNameLookupAndCompletionEngine
import org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment; //导入依赖的package包/类
private static void copyNameLookupAndCompletionEngine(CompletionProposalCollector completionProposalCollector, IJavaCompletionProposal proposal,
InternalCompletionProposal newProposal) {
try {
InternalCompletionContext context = (InternalCompletionContext) Reflection.contextField.get(completionProposalCollector);
InternalExtendedCompletionContext extendedContext = (InternalExtendedCompletionContext) Reflection.extendedContextField.get(context);
LookupEnvironment lookupEnvironment = (LookupEnvironment) Reflection.lookupEnvironmentField.get(extendedContext);
Reflection.nameLookupField.set(newProposal, ((SearchableEnvironment) lookupEnvironment.nameEnvironment).nameLookup);
Reflection.completionEngineField.set(newProposal, lookupEnvironment.typeRequestor);
} catch (IllegalAccessException ignore) {
// ignore
}
}
示例6: getPackageElement
import org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment; //导入依赖的package包/类
@Override
public PackageElement getPackageElement(CharSequence name) {
LookupEnvironment le = _env.getLookupEnvironment();
if (name.length() == 0) {
return new PackageElementImpl(_env, le.defaultPackage);
}
char[] packageName = name.toString().toCharArray();
PackageBinding packageBinding = le.createPackage(CharOperation.splitOn('.', packageName));
if (packageBinding == null) {
return null;
}
return new PackageElementImpl(_env, packageBinding);
}
示例7: getTypeElement
import org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment; //导入依赖的package包/类
@Override
public TypeElement getTypeElement(CharSequence name) {
LookupEnvironment le = _env.getLookupEnvironment();
final char[][] compoundName = CharOperation.splitOn('.', name.toString().toCharArray());
ReferenceBinding binding = le.getType(compoundName);
// If we didn't find the binding, maybe it's a nested type;
// try finding the top-level type and then working downwards.
if (null == binding) {
ReferenceBinding topLevelBinding = null;
int topLevelSegments = compoundName.length;
while (--topLevelSegments > 0) {
char[][] topLevelName = new char[topLevelSegments][];
for (int i = 0; i < topLevelSegments; ++i) {
topLevelName[i] = compoundName[i];
}
topLevelBinding = le.getType(topLevelName);
if (null != topLevelBinding) {
break;
}
}
if (null == topLevelBinding) {
return null;
}
binding = topLevelBinding;
for (int i = topLevelSegments; null != binding && i < compoundName.length; ++i) {
binding = binding.getMemberType(compoundName[i]);
}
}
if (null == binding) {
return null;
}
return new TypeElementImpl(_env, binding, null);
}
示例8: resolveDocument
import org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment; //导入依赖的package包/类
public void resolveDocument() {
try {
IPath path = new Path(this.document.getPath());
IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(path.segment(0));
JavaModel model = JavaModelManager.getJavaModelManager().getJavaModel();
JavaProject javaProject = (JavaProject) model.getJavaProject(project);
this.options = new CompilerOptions(javaProject.getOptions(true));
ProblemReporter problemReporter =
new ProblemReporter(
DefaultErrorHandlingPolicies.proceedWithAllProblems(),
this.options,
new DefaultProblemFactory());
// Re-parse using normal parser, IndexingParser swallows several nodes, see comment above class.
this.basicParser = new Parser(problemReporter, false);
this.basicParser.reportOnlyOneSyntaxError = true;
this.basicParser.scanner.taskTags = null;
this.cud = this.basicParser.parse(this.compilationUnit, new CompilationResult(this.compilationUnit, 0, 0, this.options.maxProblemsPerUnit));
// Use a non model name environment to avoid locks, monitors and such.
INameEnvironment nameEnvironment = new JavaSearchNameEnvironment(javaProject, JavaModelManager.getJavaModelManager().getWorkingCopies(DefaultWorkingCopyOwner.PRIMARY, true/*add primary WCs*/));
this.lookupEnvironment = new LookupEnvironment(this, this.options, problemReporter, nameEnvironment);
reduceParseTree(this.cud);
this.lookupEnvironment.buildTypeBindings(this.cud, null);
this.lookupEnvironment.completeTypeBindings();
this.cud.scope.faultInTypes();
this.cud.resolve();
} catch (Exception e) {
if (JobManager.VERBOSE) {
e.printStackTrace();
}
}
}
示例9: BindingKeyResolver
import org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment; //导入依赖的package包/类
private BindingKeyResolver(BindingKeyParser parser, Compiler compiler, LookupEnvironment environment, CompilationUnitDeclaration outerMostParsedUnit, HashtableOfObject parsedUnits) {
super(parser);
this.compiler = compiler;
this.environment = environment;
this.outerMostParsedUnit = outerMostParsedUnit;
this.resolvedUnits = parsedUnits;
}
示例10: isSubsignature
import org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment; //导入依赖的package包/类
public boolean isSubsignature(IMethodBinding otherMethod) {
try {
LookupEnvironment lookupEnvironment = this.resolver.lookupEnvironment();
return lookupEnvironment != null
&& lookupEnvironment.methodVerifier().isMethodSubsignature(this.binding, ((MethodBinding) otherMethod).binding);
} catch (AbortCompilation e) {
// don't surface internal exception to clients
// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=143013
return false;
}
}
示例11: DefaultBindingResolver
import org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment; //导入依赖的package包/类
DefaultBindingResolver(LookupEnvironment lookupEnvironment, WorkingCopyOwner workingCopyOwner, BindingTables bindingTables, boolean isRecoveringBindings, boolean fromJavaProject) {
this.newAstToOldAst = new HashMap();
this.astNodesToBlockScope = new HashMap();
this.bindingsToAstNodes = new HashMap();
this.bindingTables = bindingTables;
this.scope = new CompilationUnitScope(new CompilationUnitDeclaration(null, null, -1), lookupEnvironment);
this.workingCopyOwner = workingCopyOwner;
this.isRecoveringBindings = isRecoveringBindings;
this.fromJavaProject = fromJavaProject;
}
示例12: NonNullDefaultAwareTypeAnnotationWalker
import org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment; //导入依赖的package包/类
/** Create initial walker with non-empty type annotations. */
public NonNullDefaultAwareTypeAnnotationWalker(IBinaryTypeAnnotation[] typeAnnotations,
int defaultNullness, LookupEnvironment environment) {
super(typeAnnotations);
this.nonNullAnnotation = getNonNullAnnotation(environment);
this.defaultNullness = defaultNullness;
}
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:8,代码来源:NonNullDefaultAwareTypeAnnotationWalker.java
示例13: getNonNullAnnotation
import org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment; //导入依赖的package包/类
private static IBinaryAnnotation getNonNullAnnotation(LookupEnvironment environment) {
final char[] nonNullAnnotationName = CharOperation.concat(
'L', CharOperation.concatWith(environment.getNonNullAnnotationName(), '/'), ';');
// create the synthetic annotation:
return new IBinaryAnnotation() {
@Override
public char[] getTypeName() {
return nonNullAnnotationName;
}
@Override
public IBinaryElementValuePair[] getElementValuePairs() {
return null;
}
};
}
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:16,代码来源:NonNullDefaultAwareTypeAnnotationWalker.java
示例14: mergeParameterNullAnnotations
import org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment; //导入依赖的package包/类
private void mergeParameterNullAnnotations(BlockScope currentScope) {
LookupEnvironment env = currentScope.environment();
TypeBinding[] ourParameters = this.binding.parameters;
TypeBinding[] descParameters = this.descriptor.parameters;
int len = Math.min(ourParameters.length, descParameters.length);
for (int i = 0; i < len; i++) {
long ourTagBits = ourParameters[i].tagBits & TagBits.AnnotationNullMASK;
long descTagBits = descParameters[i].tagBits & TagBits.AnnotationNullMASK;
if (ourTagBits == 0L) {
if (descTagBits != 0L && !ourParameters[i].isBaseType()) {
AnnotationBinding [] annotations = descParameters[i].getTypeAnnotations();
for (int j = 0, length = annotations.length; j < length; j++) {
AnnotationBinding annotation = annotations[j];
if (annotation != null) {
switch (annotation.getAnnotationType().id) {
case TypeIds.T_ConfiguredAnnotationNullable :
case TypeIds.T_ConfiguredAnnotationNonNull :
ourParameters[i] = env.createAnnotatedType(ourParameters[i], new AnnotationBinding [] { annotation });
break;
}
}
}
}
} else if (ourTagBits != descTagBits) {
if (ourTagBits == TagBits.AnnotationNonNull) { // requested @NonNull not provided
char[][] inheritedAnnotationName = null;
if (descTagBits == TagBits.AnnotationNullable)
inheritedAnnotationName = env.getNullableAnnotationName();
currentScope.problemReporter().illegalRedefinitionToNonNullParameter(this.arguments[i], this.descriptor.declaringClass, inheritedAnnotationName);
}
}
}
}
示例15: processClassNames
import org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment; //导入依赖的package包/类
private ReferenceBinding[] processClassNames(LookupEnvironment environment) {
int length = this.classNames.length;
ReferenceBinding[] referenceBindings = new ReferenceBinding[length];
for(int i = 0; i < length; ++i) {
String currentName = this.classNames[i];
Object compoundName = null;
char[][] var8;
if(currentName.indexOf(46) != -1) {
char[] type = currentName.toCharArray();
var8 = CharOperation.splitOn('.', type);
} else {
var8 = new char[][]{currentName.toCharArray()};
}
ReferenceBinding var9 = environment.getType(var8);
if(var9 == null || !var9.isValidBinding()) {
throw new IllegalArgumentException(this.bind("configure.invalidClassName", currentName));
}
if(var9.isBinaryBinding()) {
referenceBindings[i] = var9;
}
}
return referenceBindings;
}