package xapi.javac.dev.api; import com.sun.source.tree.CompilationUnitTree; import xapi.inject.X_Inject; import xapi.javac.dev.model.JavaDocument; /** * @author James X. Nelson (james@wetheinter.net) * Created on 4/3/16. */ public interface SourceTransformationService { static SourceTransformationService instanceFrom(JavacService service) { return service.getOrCreate( SourceTransformationService.class, cls->{ final SourceTransformationService inst = X_Inject.instance(SourceTransformationService.class); inst.init(service); return inst; } ); } void init(JavacService service); InjectionResolver createInjectionResolver(CompilationUnitTree cup); void requestOverwrite(CompilationUnitTree cup, int startPos, int endPos, String newSource); void recordRepackage(JavaDocument doc, String oldPackage, String newPackage); }