@Override protected boolean addFieldImport(CtFieldReference ref) { if (ref.getDeclaringType() != null) { if (isImportedInClassImports(ref.getDeclaringType())) { return false; } } boolean shouldTypeBeImported = this.shouldTypeBeImported(ref); if (shouldTypeBeImported) { if (this.fieldImports.containsKey(ref.getSimpleName())) { return isImportedInFieldImports(ref); } fieldImports.put(ref.getSimpleName(), ref); return true; } else { return false; } }
/** * This method use @link{ImportScannerImpl#isTypeInCollision} to import a ref only if there is a collision * @param ref: the type we are testing, it can be a CtTypeReference, a CtFieldReference or a CtExecutableReference * * @return true if the ref should be imported. */ private boolean shouldTypeBeImported(CtReference ref) { // we import the targetType by default to simplify and avoid conclict in inner classes if (ref.equals(targetType)) { return true; } return isTypeInCollision(ref, true); }
@Override protected boolean addMethodImport(CtExecutableReference ref) { if (ref.getDeclaringType() != null) { if (isImportedInClassImports(ref.getDeclaringType())) { return false; } } boolean shouldTypeBeImported = this.shouldTypeBeImported(ref); if (shouldTypeBeImported) { if (this.methodImports.containsKey(ref.getSimpleName())) { return isImportedInMethodImports(ref); } methodImports.put(ref.getSimpleName(), ref); if (ref.getDeclaringType() != null) { if (ref.getDeclaringType().getPackage() != null) { if (ref.getDeclaringType().getPackage().equals(this.targetType.getPackage())) { addClassImport(ref.getDeclaringType()); } } } return true; } else { return false; } }
private void reset() { printer.reset(); context = new PrintingContext(); if (env.isAutoImports()) { this.importsContext = new ImportScannerImpl(); } else { this.importsContext = new MinimalImportScanner(); } }
@Override protected boolean addClassImport(CtTypeReference<?> ref) { boolean shouldTypeBeImported = this.shouldTypeBeImported(ref); if (shouldTypeBeImported) { return super.addClassImport(ref); } else { return false; } }
/** * Creates a new code generator visitor. */ public DefaultJavaPrettyPrinter(Environment env) { this.env = env; this.imports = new HashSet<>(); setPrinterTokenWriter(new DefaultTokenWriter(new PrinterHelper(env))); if (env.isAutoImports()) { this.importsContext = new ImportScannerImpl(); } else { this.importsContext = new MinimalImportScanner(); } }