/*******************************************************************************
* Copyright (c) 2000, 2009 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.wst.jsdt.internal.compiler.lookup;
import org.eclipse.wst.jsdt.core.compiler.CharOperation;
import org.eclipse.wst.jsdt.core.infer.InferredType;
import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;
public class MissingBinaryTypeBinding extends SourceTypeBinding {
/**
* Special constructor for constructing proxies of missing binary types (114349)
* @param packageBinding
* @param compoundName
* @param environment
*/
public MissingBinaryTypeBinding(PackageBinding packageBinding, char[][] compoundName, LookupEnvironment environment, Scope parentScope) {
super(compoundName,packageBinding,new ClassScope(parentScope,new InferredType(null)));
this.compoundName = compoundName;
computeId();
this.tagBits |= TagBits.IsBinaryBinding | TagBits.HierarchyHasProblems;
// this.environment = environment;
this.fPackage = packageBinding;
this.fileName = CharOperation.concatWith(compoundName, '/');
this.sourceName = compoundName[compoundName.length - 1]; // [java][util][Map$Entry]
this.modifiers = ClassFileConstants.AccPublic;
this.superclass = null; // will be fixed up using #setMissingSuperclass(...)
this.memberTypes = Binding.NO_MEMBER_TYPES;
this.fields = Binding.NO_FIELDS;
this.methods = Binding.NO_METHODS;
}
/**
* Missing binary type will answer <code>false</code> to #isValidBinding()
* @see org.eclipse.wst.jsdt.internal.compiler.lookup.Binding#problemId()
*/
public int problemId() {
return ProblemReasons.NotFound;
}
/**
* Only used to fixup the superclass hierarchy of proxy binary types
* @param missingSuperclass
* @see LookupEnvironment#cacheMissingBinaryType(char[][], org.eclipse.wst.jsdt.internal.compiler.ast.CompilationUnitDeclaration)
*/
void setMissingSuperclass(ReferenceBinding missingSuperclass) {
this.superclass = missingSuperclass;
}
}