public static File nodeSpecToFile()

in client/migrationx/migrationx-domain/migrationx-domain-dataworks/src/main/java/com/aliyun/dataworks/migrationx/domain/dataworks/service/converter/DataWorksSpecNodeConverter.java [224:307]


    public static File nodeSpecToFile(Specification<DataWorksWorkflowSpec> spec, String nodeId, String content) {
        DataWorksWorkflowSpec dataWorksWorkflowSpec = spec.getSpec();
        if (spec.getSpec() == null) {
            log.warn("dataworks workflow spec is null");
            return null;
        }

        return Optional.ofNullable(getMatchSpecNode(dataWorksWorkflowSpec, nodeId)).map(specNode -> {
            File file = new File();
            file.setAppId(null);
            file.setBizId(null);
            file.setCloudUuid(null);
            file.setCommitStatus(null);
            file.setConnName(Optional.ofNullable(specNode.getDatasource()).map(SpecDatasource::getName).orElse(null));
            Optional.ofNullable(content).ifPresent(x -> Optional.ofNullable(specNode.getScript()).ifPresent(s -> s.setContent(x)));
            file.setContent(new DataWorksNodeAdapter(spec, specNode, Context.builder().deployToScheduler(true).build()).getCode());
            file.setCreateTime(null);
            file.setCreateUser(null);
            file.setCurrentVersion(null);
            file.setExtend(null);
            file.setExtraContent(null);
            file.setFileDagUrl(null);
            file.setFileDelete(null);
            file.setFileDesc(specNode.getDescription());
            file.setFileFolderId(null);
            file.setFileFolderPath(Optional.ofNullable(specNode.getScript()).map(SpecFile::getPath).orElse(null));
            file.setFileId(Long.valueOf(specNode.getId()));
            file.setFileLockStatus(null);
            file.setFileLockUser(null);
            file.setFileLockUserName(null);
            file.setFileName(specNode.getName());
            file.setFilePublish(null);
            file.setFileTypeStr(Optional.ofNullable(specNode.getScript())
                .map(SpecScript::getRuntime).map(SpecScriptRuntime::getCommand).orElse(null));
            file.setFileType(getScriptCommandTypeId(specNode.getScript()));
            file.setGalaxyResultTableSql(null);
            file.setGalaxySourceTableSql(null);
            file.setGalaxyTaskConfig(null);
            file.setInstanceInfo(null);
            file.setIsAutoParse(null);
            file.setIsLarge(null);
            file.setIsOdps(null);
            file.setIsProtected(null);
            file.setLabelId(null);
            file.setLastEditTime(null);
            file.setLastEditUser(null);
            file.setLastEditUserName(null);
            file.setLimit(null);
            file.setLocked(null);
            file.setLockedBy(null);
            file.setLockedByName(null);
            file.setNodeId(null);
            file.setOriginResourceName(null);
            file.setOwner(specNode.getOwner());
            file.setOwnerName(null);
            file.setParentId(null);
            file.setParentType(null);
            file.setPosition(null);
            file.setReference(null);
            file.setRegion(null);
            file.setSourceApp(null);
            file.setStart(null);
            file.setTenantId(null);
            file.setTtContent(null);
            file.setUseType(null);
            Optional.ofNullable(LabelEnum.getByLabel(SpecKind.class, spec.getKind())).ifPresent(specKind -> {
                switch (specKind) {
                    case CYCLE_WORKFLOW:
                        file.setUseType(NodeUseType.SCHEDULED.getValue());
                        break;
                    case MANUAL_WORKFLOW:
                        file.setUseType(NodeUseType.MANUAL_WORKFLOW.getValue());
                        break;
                    case MANUAL_NODE:
                        file.setUseType(NodeUseType.MANUAL.getValue());
                        break;
                }
            });
            file.setWorkspaceUrl(null);
            file.setIgnoreLock(null);

            return file;
        }).orElse(null);
    }