package bluej.parser.entity;

import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;

import bluej.debugger.gentype.JavaType;
import bluej.debugger.gentype.Reflective;


| Represents an unresolved sequence of names from an import statement, which should | when resolved refer to a class or (for wildcard imports) a package. | | @author Davin McCall | public class ImportedEntity extends JavaEntity{ private EntityResolver resolver; private List<String> names; private Reflective querySource;
| Create an ImportEntity with the given attributes. | public ImportedEntity(EntityResolver resolver, List<String> names, Reflective querySource) { this.resolver = resolver; this.names = names; this.querySource = querySource; } @Override public String getName() { return names.stream().collect(Collectors.joining(".")); } @Override public JavaEntity getSubentity(String name, Reflective accessSource) { List<String> newNames = new LinkedList<String>(); newNames.addAll(names); newNames.add(name); return new ImportedEntity(resolver, newNames, querySource); } @Override public JavaType getType() { return null; } @Override public JavaEntity setTypeArgs(List<TypeArgumentEntity> tparams) { return null; } @Override public ValueEntity resolveAsValue() { return null; } @Override public TypeEntity resolveAsType() { PackageOrClass poc = resolveAsPackageOrClass(); if (poc != null) { return poc.resolveAsType(); } return null; } @Override public PackageOrClass resolveAsPackageOrClass() { Iterator<String> i = names.iterator(); if (! i.hasNext()) { return null; } String fqName = i.next(); PackageOrClass poc = new PackageEntity(fqName, resolver); while (i.hasNext()){ poc = poc.getPackageOrClassMember(i.next()); if (poc == null) { return null; } } return poc; } }
top, use, map, class ImportedEntity

.   ImportedEntity
.   getName
.   getSubentity
.   getType
.   setTypeArgs
.   resolveAsValue
.   resolveAsType
.   resolveAsPackageOrClass




121 neLoCode + 4 LoComm