예제 #1
0
  static AdGroupCriterion addPartition(
      long adGroupId,
      AdGroupCriterion parent,
      ProductCondition condition,
      ProductPartitionType partitionType,
      FixedBid bid,
      Boolean isNegative) {
    AdGroupCriterion adGroupCriterion = null;

    if (isNegative) {
      adGroupCriterion = new NegativeAdGroupCriterion();
    } else {
      adGroupCriterion = new BiddableAdGroupCriterion();
      ((BiddableAdGroupCriterion) adGroupCriterion).setCriterionBid(bid);
    }

    adGroupCriterion.setAdGroupId(adGroupId);

    ProductPartition criterion = new ProductPartition();
    criterion.setCondition(condition);
    criterion.setParentCriterionId((parent != null) ? parent.getId() : null);

    if (partitionType == ProductPartitionType.SUBDIVISION) {
      criterion.setPartitionType(ProductPartitionType.SUBDIVISION); // Branch
      adGroupCriterion.setId(_referenceId--);
    } else {
      criterion.setPartitionType(ProductPartitionType.UNIT); // Leaf
    }

    adGroupCriterion.setCriterion(criterion);

    addPartitionAction(adGroupCriterion, ItemAction.ADD);

    return adGroupCriterion;
  }