private NameEnvironmentAnswer createNameEnvironmentAnswer(final String pClazzName, final byte[] clazzBytes) throws ClassFormatException { final char[] fileName = pClazzName.toCharArray(); final ClassFileReader classFileReader = new ClassFileReader(clazzBytes, fileName, true); return new NameEnvironmentAnswer(classFileReader, null); }
@Override public NameEnvironmentAnswer findType(String packageName, String typeName, AccessRestriction accessRestriction) { try { String qualifiedFileName = packageName + "/" + typeName + SUFFIX_STRING_class; ClassFileReader reader = ClassFileReader.read(this.zipFile, qualifiedFileName); if (reader != null) { return new NameEnvironmentAnswer(reader, accessRestriction); } } catch (ClassFormatException | IOException e) { // treat as if class file is missing } return null; }
@Override public NameEnvironmentAnswer findType(String packageName, String typeName, AccessRestriction accessRestriction) { try { String qualifiedFileName = packageName + "/" + typeName + SUFFIX_STRING_class; ClassFileReader reader = ClassFileReader.read(this.zipFile, qualifiedFileName); if (reader != null) { return new NameEnvironmentAnswer(reader, accessRestriction); } } catch (ClassFormatException | IOException e) { // treat as if class file is missing } return null; }
@Override public NameEnvironmentAnswer findType(String packageName, String typeName, AccessRestriction accessRestriction) { try { Path classFile = getFile(packageName, typeName); if (classFile != null) { try (InputStream is = Files.newInputStream(classFile)) { return new NameEnvironmentAnswer(ClassFileReader.read(is, classFile.getFileName().toString(), false), accessRestriction); } } } catch (ClassFormatException | IOException e) { // treat as if type is missing } return null; }
private NameEnvironmentAnswer findSourceSecondaryType(String typeName, String qualifiedPackageName, String qualifiedBinaryFileName) { if (this.packageSecondaryTypes == null) this.packageSecondaryTypes = new Hashtable<>(); Hashtable<String, String> packageEntry = this.packageSecondaryTypes.get(qualifiedPackageName); if (packageEntry == null) { packageEntry = getSecondaryTypes(qualifiedPackageName); this.packageSecondaryTypes.put(qualifiedPackageName, packageEntry); } String fileName = packageEntry.get(typeName); return fileName != null ? new NameEnvironmentAnswer(new CompilationUnit(null, fileName, this.encoding, this.destinationPath), fetchAccessRestriction(qualifiedBinaryFileName)) : null; }
private NameEnvironmentAnswer findSourceSecondaryType(String typeName, String qualifiedPackageName, String qualifiedBinaryFileName) { if (this.packageSecondaryTypes == null) this.packageSecondaryTypes = new Hashtable<>(); Hashtable<String, String> packageEntry = this.packageSecondaryTypes.get(qualifiedPackageName); if (packageEntry == null) { packageEntry = getPackageTypes(qualifiedPackageName); this.packageSecondaryTypes.put(qualifiedPackageName, packageEntry); } String fileName = packageEntry.get(typeName); return fileName != null ? new NameEnvironmentAnswer(new CompilationUnit(null, fileName, this.encoding, this.destinationPath), fetchAccessRestriction(qualifiedBinaryFileName)) : null; }
private NameEnvironmentAnswer findSourceSecondaryType(String typeName, String qualifiedPackageName, String qualifiedBinaryFileName) { if (this.packageSecondaryTypes == null) this.packageSecondaryTypes = new Hashtable<>(); Hashtable<String, String> packageEntry = this.packageSecondaryTypes.get(qualifiedPackageName); if (packageEntry == null) { packageEntry = getPackageTypes(qualifiedPackageName); this.packageSecondaryTypes.put(qualifiedPackageName, packageEntry); } String fileName = packageEntry.get(typeName); return fileName != null ? new NameEnvironmentAnswer(new CompilationUnit(null, fileName, this.encoding, this.destinationPath), fetchAccessRestriction(qualifiedBinaryFileName)) : null; }
private NameEnvironmentAnswer findSourceSecondaryType(String typeName, String qualifiedPackageName, String qualifiedBinaryFileName) { if (this.packageSecondaryTypes == null) this.packageSecondaryTypes = new Hashtable<>(); Hashtable<String, String> packageEntry = this.packageSecondaryTypes.get(qualifiedPackageName); if (packageEntry == null) { packageEntry = getSecondaryTypes(qualifiedPackageName); this.packageSecondaryTypes.put(qualifiedPackageName, packageEntry); } String fileName = packageEntry.get(typeName); return fileName != null ? new NameEnvironmentAnswer(new CompilationUnit(null, fileName, this.encoding, this.destinationPath), fetchAccessRestriction(qualifiedBinaryFileName)) : null; }
private NameEnvironmentAnswer findSourceSecondaryType(String typeName, String qualifiedPackageName, String qualifiedBinaryFileName) { if (this.packageSecondaryTypes == null) this.packageSecondaryTypes = new Hashtable<>(); Hashtable<String, String> packageEntry = this.packageSecondaryTypes.get(qualifiedPackageName); if (packageEntry == null) { packageEntry = getPackageTypes(qualifiedPackageName); this.packageSecondaryTypes.put(qualifiedPackageName, packageEntry); } String fileName = packageEntry.get(typeName); return fileName != null ? new NameEnvironmentAnswer(new CompilationUnit(null, fileName, this.encoding, this.destinationPath), fetchAccessRestriction(qualifiedBinaryFileName)) : null; }
@Override public NameEnvironmentAnswer findType(String packageName, String typeName, AccessRestriction accessRestriction) { Path javaFile = getFile(packageName, typeName); // Could be looking for a nested class, so try using outer class file name. // ASSUMPTION: '$' is ONLY used in a compiler generated class file names. if (javaFile == null && typeName.indexOf("$") > 0) { javaFile = getFile(packageName, typeName.split("\\$")[0]); } if (javaFile != null) { CompilationUnit cu = new ClasspathCompilationUnit(javaFile, encoding); return new NameEnvironmentAnswer(cu, accessRestriction); } return null; }
NameEnvironmentAnswer getNameEnvironmentAnswer() throws ClassFormatException { if (nameEnvironmentAnswer == null) { ClassFileReader cfr = new ClassFileReader(getBytes(), unit.getResourceLocation().toCharArray(), true); nameEnvironmentAnswer = new NameEnvironmentAnswer(cfr, null); } return nameEnvironmentAnswer; }
private NameEnvironmentAnswer searchInOverrideSupport(final char[] typeName, final char[][] packageName) { final char[] fqnWithSlash = CharOperation.concatWith(packageName, typeName, CompilationUnitOverrideSupport.SEPARATOR); final ICompilationUnit overrideCu = overrideSupport().get(fqnWithSlash); if (overrideCu != null) { return new NameEnvironmentAnswer(overrideCu, null); } return null; }
private NameEnvironmentAnswer searchInOverrideSupport(final char[][] compoundName) { final char[] fqnWithSlash = CharOperation.concatWith(compoundName, CompilationUnitOverrideSupport.SEPARATOR); final ICompilationUnit overrideCu = overrideSupport().get(fqnWithSlash); if (overrideCu != null) { return new NameEnvironmentAnswer(overrideCu, null); } return null; }
public NameEnvironmentAnswer findClass(char[] typeName, String qualifiedPackageName, String qualifiedBinaryFileName, boolean asBinaryOnly) { if (!isPackage(qualifiedPackageName)) return null; // most common case try { ClassFileReader reader = ClassFileReader.read(this.zipFile, qualifiedBinaryFileName); if (reader != null) return new NameEnvironmentAnswer(reader, fetchAccessRestriction(qualifiedBinaryFileName)); } catch(ClassFormatException e) { // treat as if class file is missing } catch (IOException e) { // treat as if class file is missing } return null; } public char[][][] findTypeNames(String qualifiedPackageName) {
public NameEnvironmentAnswer findClass(String sourceFileWithoutExtension, String qualifiedPackageName, String qualifiedSourceFileWithoutExtension) { SimpleLookupTable dirTable = directoryTable(qualifiedPackageName); if (dirTable != null && dirTable.elementSize > 0) { IFile file = (IFile) dirTable.get(sourceFileWithoutExtension); if (file != null) { return new NameEnvironmentAnswer(new ResourceCompilationUnit(file), null /* no access restriction */); } } return null; }
public NameEnvironmentAnswer findClass(String sourceFileWithoutExtension, String qualifiedPackageName, String qualifiedSourceFileWithoutExtension) { SimpleLookupTable dirTable = directoryTable(qualifiedPackageName); if (dirTable != null && dirTable.elementSize > 0) { IFile file = (IFile) dirTable.get(sourceFileWithoutExtension); if (file != null) { return new NameEnvironmentAnswer(new ResourceCompilationUnit(file, file.getLocationURI()), null /* no access restriction */); } } return null; }
@Override public NameEnvironmentAnswer findClass(String sourceFileWithoutExtension, String qualifiedPackageName, String moduleName, String qualifiedSourceFileWithoutExtension) { SimpleLookupTable dirTable = directoryTable(qualifiedPackageName); if (dirTable != null && dirTable.elementSize > 0) { IFile file = (IFile) dirTable.get(sourceFileWithoutExtension); if (file != null) { return new NameEnvironmentAnswer(new ResourceCompilationUnit(file, this.module == null ? null : this.module.name()), null /* no access restriction */); } } return null; }
public NameEnvironmentAnswer findClass(String sourceFileWithoutExtension, String qualifiedPackageName, String qualifiedSourceFileWithoutExtension) { SimpleLookupTable dirTable = directoryTable(qualifiedPackageName); if (dirTable != null && dirTable.elementSize > 0) { IFile file = (IFile) dirTable.get(sourceFileWithoutExtension); if (file != null) { return new NameEnvironmentAnswer(new ResourceCompilationUnit(file, file.getLocationURI()), null /* no access restriction */); } } return null; }
public NameEnvironmentAnswer findClass(String sourceFileWithoutExtension, String qualifiedPackageName, String moduleName, String qualifiedSourceFileWithoutExtension) { SimpleLookupTable dirTable = directoryTable(qualifiedPackageName); if (dirTable != null && dirTable.elementSize > 0) { IFile file = (IFile) dirTable.get(sourceFileWithoutExtension); if (file != null) { return new NameEnvironmentAnswer(new ResourceCompilationUnit(file, this.module == null ? null : this.module.name()), null /* no access restriction */); } } return null; }
public NameEnvironmentAnswer findClass(String sourceFileWithoutExtension, String qualifiedPackageName, String qualifiedSourceFileWithoutExtension) { SimpleLookupTable dirTable = directoryTable(qualifiedPackageName); if (dirTable != null && dirTable.elementSize > 0) { IFile file = (IFile) dirTable.get(sourceFileWithoutExtension); if (file != null) { return new NameEnvironmentAnswer(new ResourceCompilationUnit(file, file.getLocationURI()), null /* no access restriction */); } } return null; }