private String getScriptLanguage()

in client/migrationx/migrationx-domain/migrationx-domain-dataworks/src/main/java/com/aliyun/dataworks/migrationx/domain/dataworks/service/spec/handler/BasicNodeSpecHandler.java [260:314]


    private String getScriptLanguage(DwNodeEntity dmNodeBO) {
        LanguageEnum language = Optional.ofNullable(CodeProgramType.getNodeTypeByName(dmNodeBO.getType())).map(nodeType -> {
            switch (nodeType) {
                case SHELL:
                case DIDE_SHELL:
                case CDH_SHELL:
                case EMR_SPARK_SHELL:
                case CDH_SPARK_SHELL:
                case EMR_SHELL:
                case EMR_HIVE_CLI:
                case PERL:
                    return LanguageEnum.SHELL_SCRIPT;
                case EMR_SPARK_SQL:
                    return LanguageEnum.SPARK_SQL;
                case CDH_HIVE:
                case HIVE:
                case EMR_HIVE:
                    return LanguageEnum.HIVE_SQL;
                case EMR_IMPALA:
                case CDH_IMPALA:
                    return LanguageEnum.IMPALA_SQL;
                case CLICK_SQL:
                    return LanguageEnum.CLICKHOUSE_SQL;
                case ODPS_SQL:
                case ODPS_PERL:
                    return LanguageEnum.ODPS_SQL;
                case ODPS_SCRIPT:
                    return LanguageEnum.ODPS_SCRIPT;
                case EMR_PRESTO:
                case CDH_PRESTO:
                    return LanguageEnum.PRESTO_SQL;
                case PYODPS:
                    return LanguageEnum.PYTHON2;
                case PYODPS3:
                    return LanguageEnum.PYTHON3;
                case DATAX2:
                case DATAX:
                case RI:
                case DI:
                    return LanguageEnum.JSON;
                case HOLOGRES_SQL:
                    return LanguageEnum.HOLOGRES_SQL;
                default:
                    return null;
            }
        }).orElse(null);

        if (language != null) {
            return language.getIdentifier();
        }

        CodeModel<Code> cm = CodeModelFactory.getCodeModel(dmNodeBO.getType(), dmNodeBO.getCode());
        return Optional.ofNullable(cm.getCodeModel()).filter(m -> m instanceof MultiLanguageScriptingCode)
            .map(codeModel -> ((MultiLanguageScriptingCode)codeModel).getLanguage()).orElse(null);
    }