@Override public void initializeCompiler(JDTBatchCompiler compiler) { JDTBasedSpoonCompiler jdtCompiler = compiler.getJdtCompiler(); List<CompilationUnit> cuList = new ArrayList<>(); for (SpoonFile f : getFiles(compiler)) { if (compiler.filesToBeIgnored.contains(f.getPath())) { continue; } String fName = f.isActualFile() ? f.getPath() : f.getName(); Environment env = jdtCompiler.getEnvironment(); cuList.add(new CompilationUnit(f.getContentChars(env), fName, env.getEncoding().displayName())); } compiler.setCompilationUnits(cuList.toArray(new CompilationUnit[0])); }
@Override public char[] getContents() { String s = new String(getFileName()); if (this.jdtCompiler.factory != null && this.jdtCompiler.factory.CompilationUnit().getMap().containsKey(s)) { try { if (this.jdtCompiler.loadedContent.containsKey(s)) { return this.jdtCompiler.loadedContent.get(s); } else { char[] content = IOUtils .toCharArray(this.jdtCompiler.getCompilationUnitInputStream(s)); this.jdtCompiler.loadedContent.put(s, content); return content; } } catch (Exception e) { Launcher.LOGGER.error(e.getMessage(), e); } } return super.getContents(); }
public CompilationUnit[] getCompilationUnits(List<SpoonFile> files) { Set<String> fileNames = new HashSet<String>(); List<SpoonFile> virtualFiles = new ArrayList<SpoonFile>(); for (SpoonFile f : files) { if (!f.isActualFile()) { virtualFiles.add(f); } else { fileNames.add(f.getPath()); } } List<CompilationUnit> culist = new ArrayList<CompilationUnit>(); CompilationUnit[] units = getCompilationUnits(); for (CompilationUnit unit : units) { if (fileNames.contains(new String(unit.getFileName()))) { culist.add(unit); } } for (SpoonFile f : virtualFiles) { try { culist.add(new CompilationUnit(IOUtils.toCharArray(f .getContent()), f.getName(), null)); } catch (Exception e) { Launcher.LOGGER.error(e.getMessage(), e); } } return culist.toArray(new CompilationUnit[0]); }
if (s == null) continue; if (!(s.endsWith(SUFFIX_STRING_java) || s.endsWith(SUFFIX_STRING_JAVA))) continue; CompilationUnit cu = new CompilationUnit(null, s, this.encoding, this.destinationPath); CompilationResult compilationResult = new CompilationResult(cu.getContents(), 1, 1, 10); ProblemReporter problemReporter = new ProblemReporter(
char[] charName = compilationUnit.getFileName(); boolean isModuleInfo = CharOperation.endsWith(charName, TypeConstants.MODULE_INFO_FILE_NAME); if (isModuleInfo == (round == 0)) { // 1st round: modules, 2nd round others (to ensure populating pathToModCU well in time)
if (s == null) continue; if (!(s.endsWith(SUFFIX_STRING_java) || s.endsWith(SUFFIX_STRING_JAVA))) continue; CompilationUnit cu = new CompilationUnit(null, s, this.encoding, this.destinationPath); CompilationResult compilationResult = new CompilationResult(cu.getContents(), 1, 1, 10); ProblemReporter problemReporter = new ProblemReporter(
@Override public CompilationUnit[] getCompilationUnits() { CompilationUnit[] units = super.getCompilationUnits(); if (!ignoredFiles.isEmpty()) { List<CompilationUnit> l = new ArrayList<CompilationUnit>(); for (CompilationUnit unit : units) { if (!ignoredFiles.contains(new String(unit.getFileName()))) { l.add(unit); } } units = l.toArray(new CompilationUnit[0]); } if (useFactory) { for (int i = 0; i < units.length; i++) { CompilationUnit unit = units[i]; units[i] = new CompilationUnitWrapper(this.jdtCompiler, unit); } } return units; }
private static ICompilationUnit createCompilationunit(String _source_code, String filename) { char[] source_code = _source_code.toCharArray(); ICompilationUnit cu = new CompilationUnit(source_code, filename, null); return cu; }
if (s == null) continue; if (!(s.endsWith(SUFFIX_STRING_java) || s.endsWith(SUFFIX_STRING_JAVA))) continue; CompilationUnit cu = new CompilationUnit(null, s, this.encoding, this.destinationPath); CompilationResult compilationResult = new CompilationResult(cu.getContents(), 1, 1, 10); ProblemReporter problemReporter = new ProblemReporter(
String pkgName = null; CompilationResult compilationResult = new CompilationResult(sourceUnit, 0, 0, 1); char[][] name = parser.parsePackageDeclaration(sourceUnit.getContents(), compilationResult); if (name != null) { pkgName = CharOperation.toString(name);
private ICompilationUnit[] getCompilationUnits( final Map<String, CharSequence> sources) { final List<ICompilationUnit> compilationUnits = new ArrayList<ICompilationUnit>(); for (final Map.Entry<String, CharSequence> source : sources.entrySet()) { compilationUnits.add(new CompilationUnit(source.getValue().toString() .toCharArray(), source.getKey(), "UTF-8")); } return compilationUnits .toArray(new CompilationUnit[compilationUnits.size()]); }
String pkgName = null; CompilationResult compilationResult = new CompilationResult(sourceUnit, 0, 0, 1); char[][] name = parser.parsePackageDeclaration(sourceUnit.getContents(), compilationResult); if (name != null) { pkgName = CharOperation.toString(name);
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 = 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; }
public boolean hasCUDeclaringPackage(String qualifiedPackageName, Function<CompilationUnit, String> pkgNameExtractor) { String qp2 = File.separatorChar == '/' ? qualifiedPackageName : qualifiedPackageName.replace('/', File.separatorChar); return Stream.of(directoryList(qp2)).anyMatch(entry -> { String entryLC = entry.toLowerCase(); boolean hasDeclaration = false; String fullPath = this.path + qp2 + "/" + entry; //$NON-NLS-1$ String pkgName = null; if (entryLC.endsWith(SUFFIX_STRING_class)) { return true; } else if (entryLC.endsWith(SUFFIX_STRING_java)) { CompilationUnit cu = new CompilationUnit(null, fullPath, this.encoding); pkgName = pkgNameExtractor.apply(cu); } if (pkgName != null && pkgName.equals(qp2.replace(File.separatorChar, '.'))) hasDeclaration = true; return hasDeclaration; }); } public void reset() {
@Override public boolean hasCUDeclaringPackage(String qualifiedPackageName, Function<CompilationUnit, String> pkgNameExtractor) { String qp2 = File.separatorChar == '/' ? qualifiedPackageName : qualifiedPackageName.replace('/', File.separatorChar); return Stream.of(directoryList(qp2)).anyMatch(entry -> { String entryLC = entry.toLowerCase(); boolean hasDeclaration = false; String fullPath = this.path + qp2 + "/" + entry; //$NON-NLS-1$ String pkgName = null; if (entryLC.endsWith(SUFFIX_STRING_class)) { return true; } else if (entryLC.endsWith(SUFFIX_STRING_java)) { CompilationUnit cu = new CompilationUnit(null, fullPath, this.encoding); pkgName = pkgNameExtractor.apply(cu); } if (pkgName != null && pkgName.equals(qp2.replace(File.separatorChar, '.'))) hasDeclaration = true; return hasDeclaration; }); } @Override
private CompilationUnit newSourceFile(File source) { final String fileName = source.getAbsolutePath(); final String encoding = getSourceEncoding() != null ? getSourceEncoding().name() : null; return new CompilationUnit(null /* contents */, fileName, encoding, getOutputDirectory().getAbsolutePath(), false /* ignoreOptionalProblems */, null /* modName */); }