@Override public String prettyPrint() { StringBuffer sb = new StringBuffer(); for (OutlierSet<?> answer : _answers) { sb.append(" Hypothesis: every node in role "); sb.append(answer.getRole().orElse("<unknown role>")); sb.append(" should have the following definition for property "); sb.append(answer.getName() + ": " + answer.getDefinition() + "\n"); sb.append(" Outliers: "); sb.append(answer.getOutliers() + "\n"); sb.append(" Conformers: "); sb.append(answer.getConformers() + "\n\n"); } return sb.toString(); }
private List<AbstractRoleConsistencyQuestion> serverConsistencyPolicies() { OutliersHypothesis hypothesis = OutliersHypothesis.SAME_SERVERS; SortedMap<String, AnswerElement> roleAnswers = perRoleOutlierInfo(hypothesis); Multimap<String, OutlierSet<NavigableSet<String>>> outliersPerPropertyName = outliersByProperty( roleAnswers.values(), OutliersAnswerElement::getServerOutliers, OutlierSet::getName); // remove outlier sets where no nodes declare any servers List<String> undeclared = new LinkedList<>(); for (String name : outliersPerPropertyName.keySet()) { Collection<OutlierSet<NavigableSet<String>>> outlierSets = outliersPerPropertyName.get(name); if (outlierSets.stream() .allMatch(oset -> oset.getDefinition().isEmpty() && oset.getOutliers().isEmpty())) { undeclared.add(name); } } for (String name : undeclared) { outliersPerPropertyName.removeAll(name); } return policiesAboveThreshold(outliersPerPropertyName, hypothesis); }
sb.append(outlier.getName() + ": " + outlier.getDefinition() + "\n"); sb.append(" Outliers: "); sb.append(outlier.getOutliers() + "\n"); sb.append(" Conformers: "); sb.append(outlier.getConformers() + "\n\n");
sb.append(outlier.getName() + ": " + outlier.getDefinition() + "\n"); sb.append(" Outliers: "); sb.append(outlier.getOutliers() + "\n"); sb.append(" Conformers: "); sb.append(outlier.getConformers() + "\n\n");