static void printProductPartitionTree( AdGroupCriterion node, Map<Long, ArrayList<AdGroupCriterion>> childBranches, int treeLevel) { ProductPartition criterion = (ProductPartition) node.getCriterion(); outputStatusMessage( String.format( "%" + ((treeLevel > 0) ? treeLevel * 4 : "") + "s%s\n", "", criterion.getPartitionType())); outputStatusMessage( String.format( "%" + ((treeLevel > 0) ? treeLevel * 4 : "") + "s%s%d\n", "", "ParentCriterionId: ", criterion.getParentCriterionId())); outputStatusMessage( String.format( "%" + ((treeLevel > 0) ? treeLevel * 4 : "") + "s%s%d\n", "", "Id: ", node.getId())); if (criterion.getPartitionType() == ProductPartitionType.UNIT) { if (node instanceof BiddableAdGroupCriterion) { outputStatusMessage( String.format( "%" + ((treeLevel > 0) ? treeLevel * 4 : "") + "s%s%.2f\n", "", "Bid amount: ", ((FixedBid) ((BiddableAdGroupCriterion) node).getCriterionBid()) .getBid() .getAmount())); } else { if (node instanceof NegativeAdGroupCriterion) { outputStatusMessage( String.format("%" + treeLevel * 4 + "s%s\n", "", "Not bidding on this condition")); } } } String nullAttribute = (criterion.getParentCriterionId() != null) ? "(All Others)" : "(Tree Root)"; outputStatusMessage( String.format( "%" + ((treeLevel > 0) ? treeLevel * 4 : "") + "s%s%s\n", "", "Attribute: ", (criterion.getCondition().getAttribute() == null) ? nullAttribute : criterion.getCondition().getAttribute())); outputStatusMessage( String.format( "%" + ((treeLevel > 0) ? treeLevel * 4 : "") + "s%s%s\n", "", "Condition: ", criterion.getCondition().getOperand())); for (AdGroupCriterion childNode : childBranches.get(node.getId())) { printProductPartitionTree(childNode, childBranches, treeLevel + 1); } }
static void outputProductPartitionTree( BulkAdGroupProductPartition node, Map<Long, ArrayList<BulkAdGroupProductPartition>> childBranches, int treeLevel) { AdGroupCriterion adGroupCriterion = node.getAdGroupCriterion(); ProductPartition criterion = (ProductPartition) adGroupCriterion.getCriterion(); System.out.printf( "%" + ((treeLevel > 0) ? treeLevel * 4 : "") + "s%s\n", "", criterion.getPartitionType()); System.out.printf( "%" + ((treeLevel > 0) ? treeLevel * 4 : "") + "s%s%d\n", "", "ParentCriterionId: ", criterion.getParentCriterionId()); System.out.printf( "%" + ((treeLevel > 0) ? treeLevel * 4 : "") + "s%s%d\n", "", "Id: ", adGroupCriterion.getId()); if (criterion.getPartitionType() == ProductPartitionType.UNIT) { if (adGroupCriterion instanceof BiddableAdGroupCriterion) { System.out.printf( "%" + ((treeLevel > 0) ? treeLevel * 4 : "") + "s%s%.2f\n", "", "Bid amount: ", ((FixedBid) ((BiddableAdGroupCriterion) adGroupCriterion).getCriterionBid()) .getBid() .getAmount()); } else { if (adGroupCriterion instanceof NegativeAdGroupCriterion) { System.out.printf("%" + treeLevel * 4 + "s%s\n", "", "Not bidding on this condition"); } } } String nullAttribute = (criterion.getParentCriterionId() != null) ? "(All Others)" : "(Tree Root)"; System.out.printf( "%" + ((treeLevel > 0) ? treeLevel * 4 : "") + "s%s%s\n", "", "Attribute: ", (criterion.getCondition().getAttribute() == null) ? nullAttribute : criterion.getCondition().getAttribute()); System.out.printf( "%" + ((treeLevel > 0) ? treeLevel * 4 : "") + "s%s%s\n", "", "Condition: ", criterion.getCondition().getOperand()); for (BulkAdGroupProductPartition childNode : childBranches.get(adGroupCriterion.getId())) { outputProductPartitionTree(childNode, childBranches, treeLevel + 1); } }