static public <F extends Field<?>> Map<FieldName, F> nameMap(Collection<? extends F> fields){ Map<FieldName, F> result = new LinkedHashMap<>(); for(F field : fields){ FieldName name = field.getName(); F previousField = result.put(name, field); if(previousField != null){ throw new IllegalArgumentException("Fields " + format(field) + " and " + format(previousField) + " have the same name " + name); } } return result; }
static public Set<FieldName> nameSet(Collection<? extends Field<?>> fields){ Map<FieldName, ? extends Field<?>> result = nameMap(fields); return result.keySet(); }
static public <F extends Field<?>> Set<F> selectAll(Collection<? extends F> fields, Set<FieldName> names){ return selectAll(fields, names, false); }
private Set<FieldName> processModel(Model model){ Set<Field<?>> activeFields = DeepFieldResolverUtil.getActiveFields(this, model); expandDerivedFields(model, activeFields); return FieldUtil.nameSet(activeFields); }
private Set<FieldName> processMiningModel(MiningModel miningModel){ Set<Field<?>> activeFields = DeepFieldResolverUtil.getActiveFields(this, miningModel); Set<FieldName> activeFieldNames = new HashSet<>(); Segmentation segmentation = miningModel.getSegmentation(); List<Segment> segments = segmentation.getSegments(); for(Segment segment : segments){ Model model = segment.getModel(); if(model == null){ continue; } MiningSchema miningSchema = model.getMiningSchema(); List<MiningField> miningFields = miningSchema.getMiningFields(); for(MiningField miningField : miningFields){ FieldName name = miningField.getName(); MiningField.UsageType usageType = miningField.getUsageType(); switch(usageType){ case ACTIVE: activeFieldNames.add(name); break; default: break; } } } Set<Field<?>> modelFields = getFields(miningModel); Set<Field<?>> activeModelFields = FieldUtil.selectAll(modelFields, activeFieldNames, true); activeFields.addAll(activeModelFields); expandDerivedFields(miningModel, activeFields); return FieldUtil.nameSet(activeFields); }
private Set<FieldName> processModel(Model model){ Set<Field<?>> activeFields = DeepFieldResolverUtil.getActiveFields(this, model); expandDerivedFields(model, activeFields); return FieldUtil.nameSet(activeFields); }
private Set<FieldName> processMiningModel(MiningModel miningModel){ Set<Field<?>> activeFields = DeepFieldResolverUtil.getActiveFields(this, miningModel); Set<FieldName> activeFieldNames = new HashSet<>(); Segmentation segmentation = miningModel.getSegmentation(); List<Segment> segments = segmentation.getSegments(); for(Segment segment : segments){ Model model = segment.getModel(); if(model == null){ continue; } MiningSchema miningSchema = model.getMiningSchema(); List<MiningField> miningFields = miningSchema.getMiningFields(); for(MiningField miningField : miningFields){ FieldName name = miningField.getName(); MiningField.UsageType usageType = miningField.getUsageType(); switch(usageType){ case ACTIVE: activeFieldNames.add(name); break; default: break; } } } Set<Field<?>> modelFields = getFields(miningModel); Set<Field<?>> activeModelFields = FieldUtil.selectAll(modelFields, activeFieldNames, true); activeFields.addAll(activeModelFields); expandDerivedFields(miningModel, activeFields); return FieldUtil.nameSet(activeFields); }
static private void checkFields(Set<FieldName> names, Collection<DataField> dataFields){ assertEquals(names, FieldUtil.nameSet(dataFields)); } }
static public <F extends Field<?>> Set<F> selectAll(Collection<? extends F> fields, Set<FieldName> names){ return selectAll(fields, names, false); }
static public Set<FieldName> nameSet(Collection<? extends Field<?>> fields){ Map<FieldName, ? extends Field<?>> result = nameMap(fields); return result.keySet(); }
static public <F extends Field<?>> Map<FieldName, F> nameMap(Collection<? extends F> fields){ Map<FieldName, F> result = new LinkedHashMap<>(); for(F field : fields){ FieldName name = field.getName(); F previousField = result.put(name, field); if(previousField != null){ throw new IllegalArgumentException("Fields " + format(field) + " and " + format(previousField) + " have the same name " + name); } } return result; }
static private void checkFields(Set<FieldName> names, Set<Field<?>> fields){ assertEquals(names, FieldUtil.nameSet(fields)); } }
private void process(Field<?> field){ FieldReferenceFinder fieldReferenceFinder = new FieldReferenceFinder(); fieldReferenceFinder.applyTo(field); Set<Field<?>> activeFields = FieldUtil.selectAll(getFields(), fieldReferenceFinder.getFieldNames()); this.dependencies.put(field, activeFields); } }
static public <F extends Field<?>> Set<F> selectAll(Collection<? extends F> fields, Set<FieldName> names, boolean allowPartialSelection){ Map<FieldName, F> result = nameMap(fields); if(!allowPartialSelection && !(result.keySet()).containsAll(names)){ Set<FieldName> unmatchedNames = new LinkedHashSet<>(names); unmatchedNames.removeAll(result.keySet()); throw new IllegalArgumentException("Empty selection for names " + unmatchedNames); } (result.keySet()).retainAll(names); return new LinkedHashSet<>(result.values()); }
static private void checkFields(Set<FieldName> names, Collection<DerivedField> derivedFields){ assertEquals(names, FieldUtil.nameSet(derivedFields)); } }
private void process(Field<?> field){ FieldReferenceFinder fieldReferenceFinder = new FieldReferenceFinder(); fieldReferenceFinder.applyTo(field); Set<Field<?>> activeFields = FieldUtil.selectAll(getFields(), fieldReferenceFinder.getFieldNames()); this.dependencies.put(field, activeFields); } }
static public <F extends Field<?>> Set<F> selectAll(Collection<? extends F> fields, Set<FieldName> names, boolean allowPartialSelection){ Map<FieldName, F> result = nameMap(fields); if(!allowPartialSelection && !(result.keySet()).containsAll(names)){ Set<FieldName> unmatchedNames = new LinkedHashSet<>(names); unmatchedNames.removeAll(result.keySet()); throw new IllegalArgumentException("Empty selection for names " + unmatchedNames); } (result.keySet()).retainAll(names); return new LinkedHashSet<>(result.values()); }
static private void checkFields(Set<FieldName> names, Set<Field<?>> fields){ assertEquals(names, FieldUtil.nameSet(fields)); } }
private void processModel(Model model){ Set<Field<?>> targetFields = getTargetFields(); MiningSchema miningSchema = model.getMiningSchema(); if(miningSchema != null && miningSchema.hasMiningFields()){ Set<FieldName> targetFieldNames = new LinkedHashSet<>(); List<MiningField> miningFields = miningSchema.getMiningFields(); for(MiningField miningField : miningFields){ FieldName name = miningField.getName(); MiningField.UsageType usageType = miningField.getUsageType(); switch(usageType){ case TARGET: case PREDICTED: targetFieldNames.add(name); break; default: break; } } if(targetFieldNames.size() > 0){ Set<Field<?>> modelFields = getFields(model); targetFields.addAll(FieldUtil.selectAll(modelFields, targetFieldNames)); } } }