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);
}