Search in sources :

Example 1 with UsesStatement

use of org.eclipse.jdt.internal.compiler.ast.UsesStatement in project spoon by INRIA.

the class JDTTreeBuilderHelper method createModule.

/**
 * Creates an entire object CtModule from a module declaration.
 * @return a CtModule
 */
CtModule createModule(ModuleDeclaration moduleDeclaration) {
    CtModule module = jdtTreeBuilder.getFactory().Module().getOrCreate(new String(moduleDeclaration.moduleName));
    module.setIsOpenModule(moduleDeclaration.isOpen());
    jdtTreeBuilder.getContextBuilder().enter(module, moduleDeclaration);
    if (moduleDeclaration.requires != null && moduleDeclaration.requires.length > 0) {
        List<CtModuleRequirement> moduleRequirements = new ArrayList<>();
        for (RequiresStatement requiresStatement : moduleDeclaration.requires) {
            moduleRequirements.add(this.createModuleRequirement(requiresStatement));
        }
        module.setRequiredModules(moduleRequirements);
    }
    if (moduleDeclaration.exports != null && moduleDeclaration.exports.length > 0) {
        List<CtPackageExport> moduleExports = new ArrayList<>();
        for (ExportsStatement exportsStatement : moduleDeclaration.exports) {
            moduleExports.add(this.createModuleExport(exportsStatement));
        }
        module.setExportedPackages(moduleExports);
    }
    if (moduleDeclaration.opens != null && moduleDeclaration.opens.length > 0) {
        List<CtPackageExport> moduleOpens = new ArrayList<>();
        for (OpensStatement opensStatement : moduleDeclaration.opens) {
            moduleOpens.add(this.createModuleExport(opensStatement));
        }
        module.setOpenedPackages(moduleOpens);
    }
    if (moduleDeclaration.uses != null && moduleDeclaration.uses.length > 0) {
        List<CtUsedService> consumedServices = new ArrayList<>();
        for (UsesStatement consumedService : moduleDeclaration.uses) {
            consumedServices.add(this.createUsedService(consumedService));
        }
        module.setUsedServices(consumedServices);
    }
    if (moduleDeclaration.services != null && moduleDeclaration.services.length > 0) {
        List<CtProvidedService> moduleProvidedServices = new ArrayList<>();
        for (ProvidesStatement providesStatement : moduleDeclaration.services) {
            moduleProvidedServices.add(this.createModuleProvidedService(providesStatement));
        }
        module.setProvidedServices(moduleProvidedServices);
    }
    module.setPosition(this.jdtTreeBuilder.getPositionBuilder().buildPosition(moduleDeclaration.declarationSourceStart, moduleDeclaration.declarationSourceEnd));
    return module;
}
Also used : OpensStatement(org.eclipse.jdt.internal.compiler.ast.OpensStatement) CtProvidedService(spoon.reflect.declaration.CtProvidedService) RequiresStatement(org.eclipse.jdt.internal.compiler.ast.RequiresStatement) ArrayList(java.util.ArrayList) CtModuleRequirement(spoon.reflect.declaration.CtModuleRequirement) CtModule(spoon.reflect.declaration.CtModule) CtUsedService(spoon.reflect.declaration.CtUsedService) ProvidesStatement(org.eclipse.jdt.internal.compiler.ast.ProvidesStatement) CtPackageExport(spoon.reflect.declaration.CtPackageExport) UsesStatement(org.eclipse.jdt.internal.compiler.ast.UsesStatement) ExportsStatement(org.eclipse.jdt.internal.compiler.ast.ExportsStatement)

Aggregations

ArrayList (java.util.ArrayList)1 ExportsStatement (org.eclipse.jdt.internal.compiler.ast.ExportsStatement)1 OpensStatement (org.eclipse.jdt.internal.compiler.ast.OpensStatement)1 ProvidesStatement (org.eclipse.jdt.internal.compiler.ast.ProvidesStatement)1 RequiresStatement (org.eclipse.jdt.internal.compiler.ast.RequiresStatement)1 UsesStatement (org.eclipse.jdt.internal.compiler.ast.UsesStatement)1 CtModule (spoon.reflect.declaration.CtModule)1 CtModuleRequirement (spoon.reflect.declaration.CtModuleRequirement)1 CtPackageExport (spoon.reflect.declaration.CtPackageExport)1 CtProvidedService (spoon.reflect.declaration.CtProvidedService)1 CtUsedService (spoon.reflect.declaration.CtUsedService)1