package bluej.parser.entity;

import java.util.List;

import bluej.debugger.gentype.JavaType;
import bluej.debugger.gentype.Reflective;
import threadchecker.OnThread;
import threadchecker.Tag;


| Represents a java entity whose nature (value or type) is not yet known, | and provides a static method (getEntity) to obtain instances. | | @author Davin McCall | public class UnresolvedEntity extends JavaEntity{ private EntityResolver resolver; private String name; private List<TypeArgumentEntity> typeArguments; private Reflective querySource;
| Get an entity whose type (value or class) is not yet known. The returned entity | can later be resolved to either a value or type. | public static JavaEntity getEntity(EntityResolver resolver, String name, Reflective querySource) { return new UnresolvedEntity(resolver, name, querySource, null); } protected UnresolvedEntity(EntityResolver resolver, String name, Reflective querySource, List<TypeArgumentEntity> typeArgs) { this.resolver = resolver; this.name = name; this.querySource = querySource; this.typeArguments = typeArgs; } @Override public String getName() { return name; } @Override public JavaEntity getSubentity(String name, Reflective accessSource) { return new UnresolvedSubEntity(this, name, accessSource); } @Override public JavaType getType() { return null; } @Override public JavaEntity setTypeArgs(List<TypeArgumentEntity> tparams) { return new UnresolvedEntity(resolver, name, querySource, tparams); } @Override @OnThread(Tag.FXPlatform) public ValueEntity resolveAsValue() { if (typeArguments != null) { return null; } JavaEntity entity = resolver.getValueEntity(name, querySource); if (entity != null) { return entity.resolveAsValue(); } return null; } @Override public TypeEntity resolveAsType() { PackageOrClass entity = resolver.resolvePackageOrClass(name, querySource); if (entity != null) { TypeEntity tentity = entity.resolveAsType(); if (tentity != null) { if (typeArguments != null) { return tentity.setTypeArgs(typeArguments); } return tentity; } } return null; } @Override public PackageOrClass resolveAsPackageOrClass() { PackageOrClass ent = resolver.resolvePackageOrClass(name, querySource); if (typeArguments != null) { TypeEntity tent = ent.resolveAsType(); if (tent != null) { return tent.setTypeArgs(typeArguments); } return null; } return ent; } }
top, use, map, class UnresolvedEntity

.   getEntity
.   UnresolvedEntity
.   getName
.   getSubentity
.   getType
.   setTypeArgs
.   resolveAsValue
.   resolveAsType
.   resolveAsPackageOrClass




139 neLoCode + 5 LoComm