static AdGroupCriterion getRootNode(ArrayOfAdGroupCriterion adGroupCriterions) { AdGroupCriterion rootNode = null; for (AdGroupCriterion adGroupCriterion : adGroupCriterions.getAdGroupCriterions()) { if (((ProductPartition) adGroupCriterion.getCriterion()).getParentCriterionId() == null) { rootNode = adGroupCriterion; break; } } return rootNode; }
static void printProductPartitions(ArrayOfAdGroupCriterion adGroupCriterions) { Map<Long, ArrayList<AdGroupCriterion>> childBranches = new HashMap<Long, ArrayList<AdGroupCriterion>>(); AdGroupCriterion treeRoot = null; for (AdGroupCriterion adGroupCriterion : adGroupCriterions.getAdGroupCriterions()) { ProductPartition partition = (ProductPartition) adGroupCriterion.getCriterion(); childBranches.put(adGroupCriterion.getId(), new ArrayList<AdGroupCriterion>()); if (partition.getParentCriterionId() != null) { childBranches.get(partition.getParentCriterionId()).add(adGroupCriterion); } else { treeRoot = adGroupCriterion; } } printProductPartitionTree(treeRoot, childBranches, 0); }