static public List<? extends Map<FieldName, ?>> groupRows(HasGroupFields hasGroupFields, List<? extends Map<FieldName, ?>> table){ List<InputField> groupFields = hasGroupFields.getGroupFields(); if(groupFields.size() == 1){ InputField groupField = groupFields.get(0); table = EvaluatorUtil.groupRows(groupField.getName(), table); } else if(groupFields.size() > 1){ ModelEvaluator<?> modelEvaluator = (ModelEvaluator<?>)hasGroupFields; // XXX throw modelEvaluator.createMiningSchemaException("Expected 0 or 1 group field(s), got " + groupFields.size() + " group fields"); } return table; }
protected void checkSchema(ModelEvaluator<?> modelEvaluator){ Model model = modelEvaluator.getModel(); MiningSchema miningSchema = model.getMiningSchema(); List<InputField> inputFields = modelEvaluator.getInputFields(); List<InputField> groupFields = Collections.emptyList(); if(modelEvaluator instanceof HasGroupFields){ HasGroupFields hasGroupFields = (HasGroupFields)modelEvaluator; groupFields = hasGroupFields.getGroupFields(); } // End if if((inputFields.size() + groupFields.size()) > 1000){ throw new InvalidElementException("Model has too many input fields", miningSchema); } List<TargetField> targetFields = modelEvaluator.getTargetFields(); List<OutputField> outputFields = modelEvaluator.getOutputFields(); if((targetFields.size() + outputFields.size()) < 1){ throw new InvalidElementException("Model does not have any target or output fields", miningSchema); } }
static public Map<String, List<Field>> encodeSchema(Evaluator evaluator){ Map<String, List<Field>> result = new LinkedHashMap<>(); if(evaluator instanceof HasInputFields){ HasInputFields hasInputFields = (HasInputFields)evaluator; List<InputField> inputFields = hasInputFields.getInputFields(); if(!inputFields.isEmpty()){ result.put("inputFields", encodeModelFields(inputFields)); } } // End if if(evaluator instanceof HasGroupFields){ HasGroupFields hasGroupFields = (HasGroupFields)evaluator; List<InputField> groupFields = hasGroupFields.getGroupFields(); if(!groupFields.isEmpty()){ result.put("groupFields", encodeModelFields(groupFields)); } } // End if if(evaluator instanceof HasResultFields){ HasResultFields hasResultFields = (HasResultFields)evaluator; List<TargetField> targetFields = hasResultFields.getTargetFields(); if(!targetFields.isEmpty()){ result.put("targetFields", encodeModelFields(targetFields)); } List<OutputField> outputFields = hasResultFields.getOutputFields(); if(!outputFields.isEmpty()){ result.put("outputFields", encodeModelFields(outputFields)); } } return result; }
HasGroupFields hasGroupFields = (HasGroupFields)evaluator; List<InputField> groupFields = hasGroupFields.getGroupFields(); if(groupFields.size() == 1){ InputField groupField = groupFields.get(0);
HasGroupFields hasGroupFields = (HasGroupFields)modelEvaluator; inputFields = Iterables.concat(inputFields, hasGroupFields.getGroupFields());
HasGroupFields hasGroupfields = (HasGroupFields)evaluator; groupFields = hasGroupfields.getGroupFields();