protected static List parseTargetInfo()

in mantis-connectors/mantis-connector-job-source/src/main/java/io/mantisrx/connector/job/source/JobSource.java [198:261]


    protected static List<TargetInfo> parseTargetInfo(String targetListStr) {
        List<TargetInfo> targetList = new ArrayList<TargetInfo>();
        JsonObject requestObj = (JsonObject) parser.parse(targetListStr);
        JsonArray arr = requestObj.get("targets").getAsJsonArray();

        for (int i = 0; i < arr.size(); i++) {
            int sample = -1;
            boolean isBroadCastMode = false;
            JsonObject srcObj = arr.get(i).getAsJsonObject();
            String sName = srcObj.get(MantisSourceJobConnector.MANTIS_SOURCEJOB_NAME_PARAM).getAsString();
            String criterion = srcObj.get(MantisSourceJobConnector.MANTIS_SOURCEJOB_CRITERION).getAsString();

            String clientId = null;
            if (srcObj.get(MantisSourceJobConnector.MANTIS_SOURCEJOB_CLIENT_ID) != null) {
                clientId = srcObj.get(MantisSourceJobConnector.MANTIS_SOURCEJOB_CLIENT_ID).getAsString();
            }

            if (srcObj.get(MantisSSEConstants.SAMPLE) != null) {
                sample = srcObj.get(MantisSSEConstants.SAMPLE).getAsInt();
            }
            if (srcObj.get(MantisSourceJobConnector.MANTIS_SOURCEJOB_IS_BROADCAST_MODE) != null) {
                isBroadCastMode =
                        srcObj.get(MantisSourceJobConnector.MANTIS_SOURCEJOB_IS_BROADCAST_MODE).getAsBoolean();
            }
            boolean enableMetaMessages = false;
            if (srcObj.get(MantisSSEConstants.ENABLE_META_MESSAGES) != null) {
                enableMetaMessages = srcObj.get(MantisSSEConstants.ENABLE_META_MESSAGES).getAsBoolean();
            }
            boolean enableCompressedBinary = false;
            if (srcObj.get(MantisSSEConstants.MANTIS_ENABLE_COMPRESSION) != null) {
                enableCompressedBinary = true;
            }

            // Extract additionalParams
            Map<String, String> additionalParams = new HashMap<>();
            for (Map.Entry<String, JsonElement> entry : srcObj.entrySet()) {
                String key = entry.getKey();
                if (key.equals(MantisSourceJobConnector.MANTIS_SOURCEJOB_NAME_PARAM) ||
                    key.equals(MantisSourceJobConnector.MANTIS_SOURCEJOB_CRITERION) ||
                    key.equals(MantisSourceJobConnector.MANTIS_SOURCEJOB_CLIENT_ID) ||
                    key.equals(MantisSSEConstants.SAMPLE) ||
                    key.equals(MantisSourceJobConnector.MANTIS_SOURCEJOB_IS_BROADCAST_MODE) ||
                    key.equals(MantisSSEConstants.ENABLE_META_MESSAGES) ||
                    key.equals(MantisSSEConstants.MANTIS_ENABLE_COMPRESSION)) {
                    LOGGER.warn("Overwriting key " + key + " in additionalParams");
                }
                additionalParams.put(key, entry.getValue().getAsString());
            }

            TargetInfo ti = new TargetInfo(
                    sName,
                    criterion,
                    clientId,
                    sample,
                    isBroadCastMode,
                    enableMetaMessages,
                    enableCompressedBinary,
                    additionalParams);
            targetList.add(ti);
            LOGGER.info("sname: " + sName + " criterion: " + criterion + " isBroadcastMode " + isBroadCastMode);
        }

        return targetList;
    }