private List parseCondition()

in wilma-application/modules/wilma-stub-configuration-parser/src/main/java/com/epam/wilma/stubconfig/json/parser/ConditionDescriptorJsonParser.java [70:99]


    private List<Condition> parseCondition(JSONObject conditions, final JSONObject root, final int depth) {
        List<Condition> parsedCondition = new LinkedList<>();
        if (conditions != null) {
            Iterator<String> keys = conditions.keys();
            while (keys.hasNext()) {
                String next = keys.next();
                switch (ConditionTagNames.getTagName(next)) {
                case TAG_NAME_AND:
                    parsedCondition.add(new CompositeCondition(ConditionType.AND, parseConditionArray(conditions.getJSONArray(next), root, depth, ConditionType.AND)));
                    break;
                case TAG_NAME_OR:
                    parsedCondition.add(new CompositeCondition(ConditionType.OR, parseConditionArray(conditions.getJSONArray(next), root, depth, ConditionType.OR)));
                    break;
                case TAG_NAME_NOT:
                    parsedCondition.add(new CompositeCondition(ConditionType.NOT, parseCondition(conditions.getJSONObject(next), root, depth)));
                    break;
                case TAG_NAME_COND_SET_INVOKER:
                    int newDepth = validateDepth(depth, conditions.getString("conditionSetInvoker"));
                    parseConditionSet(root, parsedCondition, conditions, newDepth);
                    break;
                case TAG_NAME_CONDITION:
                    simpleConditionJsonParser.parseSimpleCondition(parsedCondition, conditions.getJSONObject(next));
                    break;
                default:
                    break;
                }
            }
        }
        return parsedCondition;
    }