当前位置: 首页>>代码示例>>Java>>正文


Java CompilationUnit.addImport方法代码示例

本文整理汇总了Java中com.github.javaparser.ast.CompilationUnit.addImport方法的典型用法代码示例。如果您正苦于以下问题:Java CompilationUnit.addImport方法的具体用法?Java CompilationUnit.addImport怎么用?Java CompilationUnit.addImport使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.github.javaparser.ast.CompilationUnit的用法示例。


在下文中一共展示了CompilationUnit.addImport方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: generateJavaClasses

import com.github.javaparser.ast.CompilationUnit; //导入方法依赖的package包/类
@TaskAction
void generateJavaClasses() throws IOException, ClassNotFoundException {
    if (!inputDir.isDirectory()) {
        throw new RuntimeException("inputDir needs to be a directory");
    }

    CompilationUnit baseResourceCompilationUnit = JavaParser.parseResource("ResourceBase.java");
    ClassOrInterfaceDeclaration baseResourceClass = baseResourceCompilationUnit.getClassByName("ResourceBase")
        .orElseThrow(() -> new RuntimeException("Could not find ResourceBase class"));

    // Add an @JsonSubTypes annotation to the ResourceBase class
    ArrayInitializerExpr jsonSubTypesArrayExpr = new ArrayInitializerExpr();
    SingleMemberAnnotationExpr jsonSubTypesAnnotation = new SingleMemberAnnotationExpr(
        new Name(JsonSubTypes.class.getSimpleName()), jsonSubTypesArrayExpr);
    baseResourceClass.addAnnotation(jsonSubTypesAnnotation);
    baseResourceCompilationUnit.addImport(JsonSubTypes.class);

    File[] inputFiles = inputDir.listFiles((dir, name) -> name.endsWith("Specification.json"));
    if (inputFiles == null || inputFiles.length == 0) {
        throw new RuntimeException(String.format("Did not find any spec files in directory %s",
            inputDir.getName()));
    }

    ObjectMapper objectMapper = new ObjectMapper();
    for (File inputFile : inputFiles) {

        // Deserialize specification from JSON file
        CloudFormationSpecification spec;
        try (FileInputStream inputStream = new FileInputStream(inputFile)) {
            spec = objectMapper.readValue(inputStream, CloudFormationSpecification.class);
        } catch (JsonProcessingException e) {
            LOGGER.info("Error deserializing file: {}.  Skipping...", inputFile.getName());
            continue;
        }

        // Generate the compilation unit from the specification
        CompilationUnit resourceCompilationUnit = generateCompilationUnitFromCloudFormationSpec(spec,
            jsonSubTypesArrayExpr);

        // Write the compilation unit out to a file
        String resourceClassName = resourceCompilationUnit.getType(0).getNameAsString();
        File resourceClassFile = new File(generatedFileDir, resourceClassName + ".java");
        writeFile(resourceClassFile, resourceCompilationUnit.toString());
    }

    // Write ResourceBase.java file
    writeFile(new File(generatedFileDir, "ResourceBase.java"), baseResourceCompilationUnit.toString(
        new CustomPrettyPrinterConfiguration().setArrayLiteralMembersOnSeparateLines(true)));

    // Copy over static files like ValueType.java without modification
    for (String fileName : STATIC_FILES) {
        InputStream stream = getClass().getClassLoader().getResourceAsStream(fileName);
        Files.copy(stream, new File(generatedFileDir, fileName).toPath());
        stream.close();
    }
}
 
开发者ID:salesforce,项目名称:cf2pojo,代码行数:57,代码来源:GenerateTask.java


注:本文中的com.github.javaparser.ast.CompilationUnit.addImport方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。