// Path: rulette-core/src/main/java/com/github/kislayverma/rulette/core/metadata/RuleInputMetaData.java
// public class RuleInputMetaData implements Serializable {
//     private static final long serialVersionUID = 7018331311799000825L;
//     private final String name;
//     private final int priority;
//     private final RuleInputType ruleInputType;
//     private final String dataType;
//     private final String rangeLowerBoundFieldName;
//     private final String rangeUpperBoundFieldName;
// 
//     public RuleInputMetaData(String name, int priority, RuleInputType ruleType, String dataType,
//             String rangeLowerBoundFieldName, String rangeUpperBoundFieldName) {
//         this.name = name;
//         this.priority = priority;
//         this.ruleInputType = ruleType;
//         this.dataType = dataType;
//         this.rangeLowerBoundFieldName = rangeLowerBoundFieldName;
//         this.rangeUpperBoundFieldName = rangeUpperBoundFieldName;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public int getPriority() {
//         return priority;
//     }
// 
//     public RuleInputType getRuleInputType() {
//         return ruleInputType;
//     }
// 
//     public String getDataType() {
//         return dataType;
//     }
// 
//     public String getRangeLowerBoundFieldName() {
//         return rangeLowerBoundFieldName;
//     }
// 
//     public String getRangeUpperBoundFieldName() {
//         return rangeUpperBoundFieldName;
//     }
// 
//     @Override
//     public String toString() {
//         return "RuleInputMetaData{" +
//             "name='" + name + '\'' +
//             ", priority=" + priority +
//             ", ruleInputType=" + ruleInputType +
//             ", dataType='" + dataType + '\'' +
//             ", rangeLowerBoundFieldName='" + rangeLowerBoundFieldName + '\'' +
//             ", rangeUpperBoundFieldName='" + rangeUpperBoundFieldName + '\'' +
//             '}';
//     }
// }
// 
// Path: rulette-core/src/main/java/com/github/kislayverma/rulette/core/ruleinput/type/RuleInputType.java
// public enum RuleInputType {
//     VALUE,
//     RANGE
// }
// 
// Path: rulette-core/src/main/java/com/github/kislayverma/rulette/core/ruleinput/value/DefaultDataType.java
// public enum DefaultDataType {
//     NUMBER,
//     DATE,
//     STRING
// }


import com.github.kislayverma.rulette.core.metadata.RuleInputMetaData;
import com.github.kislayverma.rulette.core.ruleinput.type.RuleInputType;
import com.github.kislayverma.rulette.core.ruleinput.value.DefaultDataType;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
package com.github.kislayverma.rulette.core.gaia;



public class RuleInputMetaDataMother {
    private static final Random RANDOM_NUM_GENERATOR = new Random();
    private static final String DUMMY_RULE_INPUT_NAME = "input-name-";
    private static final String DUMMY_LOWER_BOUND_FIELD_NAME = "lower-bound-field-name-";
    private static final String DUMMY_UPPER_BOUND_FIELD_NAME = "upper-bound-field-name-";

    public static List<RuleInputMetaData> getDefaultRangeMetaData(int n) throws Exception {
        if (n <= 0) {
            throw new Exception("0 or less dummy rule input objects requested");
        }

        List<RuleInputMetaData> dummyObjs = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            int id = RANDOM_NUM_GENERATOR.nextInt();
            dummyObjs.add(new RuleInputMetaData(DUMMY_RULE_INPUT_NAME + id, id, RuleInputType.RANGE,
                String.class.getName(), DUMMY_LOWER_BOUND_FIELD_NAME + i, DUMMY_UPPER_BOUND_FIELD_NAME + i));
        }

        return dummyObjs;
    }

    public static List<RuleInputMetaData> getDefaultValueMetaData(int n) throws Exception {
        if (n <= 0) {
            throw new Exception("0 or less dummy rule input objects requested");
        }

        List<RuleInputMetaData> dummyObjs = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            int id = RANDOM_NUM_GENERATOR.nextInt();
            dummyObjs.add(new RuleInputMetaData(DUMMY_RULE_INPUT_NAME + id, id, RuleInputType.VALUE,
// Path: rulette-core/src/main/java/com/github/kislayverma/rulette/core/metadata/RuleInputMetaData.java
// public class RuleInputMetaData implements Serializable {
//     private static final long serialVersionUID = 7018331311799000825L;
//     private final String name;
//     private final int priority;
//     private final RuleInputType ruleInputType;
//     private final String dataType;
//     private final String rangeLowerBoundFieldName;
//     private final String rangeUpperBoundFieldName;
// 
//     public RuleInputMetaData(String name, int priority, RuleInputType ruleType, String dataType,
//             String rangeLowerBoundFieldName, String rangeUpperBoundFieldName) {
//         this.name = name;
//         this.priority = priority;
//         this.ruleInputType = ruleType;
//         this.dataType = dataType;
//         this.rangeLowerBoundFieldName = rangeLowerBoundFieldName;
//         this.rangeUpperBoundFieldName = rangeUpperBoundFieldName;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public int getPriority() {
//         return priority;
//     }
// 
//     public RuleInputType getRuleInputType() {
//         return ruleInputType;
//     }
// 
//     public String getDataType() {
//         return dataType;
//     }
// 
//     public String getRangeLowerBoundFieldName() {
//         return rangeLowerBoundFieldName;
//     }
// 
//     public String getRangeUpperBoundFieldName() {
//         return rangeUpperBoundFieldName;
//     }
// 
//     @Override
//     public String toString() {
//         return "RuleInputMetaData{" +
//             "name='" + name + '\'' +
//             ", priority=" + priority +
//             ", ruleInputType=" + ruleInputType +
//             ", dataType='" + dataType + '\'' +
//             ", rangeLowerBoundFieldName='" + rangeLowerBoundFieldName + '\'' +
//             ", rangeUpperBoundFieldName='" + rangeUpperBoundFieldName + '\'' +
//             '}';
//     }
// }
// 
// Path: rulette-core/src/main/java/com/github/kislayverma/rulette/core/ruleinput/type/RuleInputType.java
// public enum RuleInputType {
//     VALUE,
//     RANGE
// }
// 
// Path: rulette-core/src/main/java/com/github/kislayverma/rulette/core/ruleinput/value/DefaultDataType.java
// public enum DefaultDataType {
//     NUMBER,
//     DATE,
//     STRING
// }


// Path: rulette-core/src/main/java/com/github/kislayverma/rulette/core/gaia/RuleInputMetaDataMother.java
import com.github.kislayverma.rulette.core.metadata.RuleInputMetaData;
import com.github.kislayverma.rulette.core.ruleinput.type.RuleInputType;
import com.github.kislayverma.rulette.core.ruleinput.value.DefaultDataType;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

package com.github.kislayverma.rulette.core.gaia;



public class RuleInputMetaDataMother {
    private static final Random RANDOM_NUM_GENERATOR = new Random();
    private static final String DUMMY_RULE_INPUT_NAME = "input-name-";
    private static final String DUMMY_LOWER_BOUND_FIELD_NAME = "lower-bound-field-name-";
    private static final String DUMMY_UPPER_BOUND_FIELD_NAME = "upper-bound-field-name-";

    public static List<RuleInputMetaData> getDefaultRangeMetaData(int n) throws Exception {
        if (n <= 0) {
            throw new Exception("0 or less dummy rule input objects requested");
        }

        List<RuleInputMetaData> dummyObjs = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            int id = RANDOM_NUM_GENERATOR.nextInt();
            dummyObjs.add(new RuleInputMetaData(DUMMY_RULE_INPUT_NAME + id, id, RuleInputType.RANGE,
                String.class.getName(), DUMMY_LOWER_BOUND_FIELD_NAME + i, DUMMY_UPPER_BOUND_FIELD_NAME + i));
        }

        return dummyObjs;
    }

    public static List<RuleInputMetaData> getDefaultValueMetaData(int n) throws Exception {
        if (n <= 0) {
            throw new Exception("0 or less dummy rule input objects requested");
        }

        List<RuleInputMetaData> dummyObjs = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            int id = RANDOM_NUM_GENERATOR.nextInt();
            dummyObjs.add(new RuleInputMetaData(DUMMY_RULE_INPUT_NAME + id, id, RuleInputType.VALUE,
                    DefaultDataType.STRING.name(), "test" + i, null));