@Override
public void visitApply(JCMethodInvocation invocation) {
if (invocation.meth instanceof JCIdent
&& JSweetConfig.TS_STRICT_MODE_KEYWORDS.contains(invocation.meth.toString().toLowerCase())) {
PackageSymbol invocationPackage = (PackageSymbol) ((JCIdent) invocation.meth).sym
.getEnclosingElement().getEnclosingElement();
String rootRelativeInvocationPackageName = getRootRelativeName(invocationPackage);
if (rootRelativeInvocationPackageName.indexOf('.') == -1) {
super.visitApply(invocation);
return;
}
String targetRootPackageName = rootRelativeInvocationPackageName.substring(0,
rootRelativeInvocationPackageName.indexOf('.'));
String pathToReachRootPackage = Util.getRelativePath(
"/" + compilationUnit.packge.getQualifiedName().toString().replace('.', '/'),
"/" + targetRootPackageName);
if (pathToReachRootPackage == null) {
super.visitApply(invocation);
return;
}
File moduleFile = new File(new File(pathToReachRootPackage), JSweetConfig.MODULE_FILE_NAME);
if (!invocationPackage.toString().equals(compilationUnit.packge.getSimpleName().toString())) {
useModule(false, invocationPackage, invocation, targetRootPackageName,
moduleFile.getPath().replace('\\', '/'), null);
}
}
super.visitApply(invocation);
}