// Copyright 2016 Google Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/**
* AdExclusionRule.java
*
* This file was auto-generated from WSDL
* by the Apache Axis 1.4 Mar 02, 2009 (07:08:06 PST) WSDL2Java emitter.
*/
package com.google.api.ads.dfp.axis.v201611;
/**
* Represents an inventory blocking rule, which prevents certain ads
* from being
* served to specified ad units.
*/
public class AdExclusionRule implements java.io.Serializable {
/* The unique ID of the {@code AdExclusionRule}. This attribute
* is readonly and is assigned
* by Google. */
private java.lang.Long id;
/* The name of the {@code AdExclusionRule}. This attribute is
* required. */
private java.lang.String name;
/* Whether or not the {@code AdExclusionRule} is active. An inactive
* rule will have no
* effect on adserving. This attribute is readonly. */
private java.lang.Boolean isActive;
/* The targeting information about which {@link AdUnitTargeting}
* objects this rule is in effect
* for. Any {@link AdUnitTargeting} objects included
* here will have their children included
* implicitly. Children of a targeted ad unit can be
* excluded. This attribute is required. */
private com.google.api.ads.dfp.axis.v201611.InventoryTargeting inventoryTargeting;
/* Whether or not this rule blocks all ads from serving other
* than the labels or advertisers
* specified. This attribute is optional and defaults
* to false. */
private java.lang.Boolean isBlockAll;
/* The labels that will be blocked from serving. Any advertiser,
* order or line item
* with one of these labels will not serve on the relevant
* ad units and their children. */
private long[] blockedLabelIds;
/* The allowed list of labels that will not be blocked by this
* rule. This trumps the values of
* {@link #isBlockAllLabels} and {@link #blockedLabelIds}.
* For example, if a rule specifies
* a blocked label "Cars", and an allowed label "Sports",
* any ad that is labeled both
* "Sports" and "Cars" will not be blocked by this rule. */
private long[] allowedLabelIds;
/* The derived type of this rule: whether it is associated with
* labels, unified entities,
* or competitive groups. Because it is derived, it
* is also read-only, so changes made to this
* field will not be persisted. */
private com.google.api.ads.dfp.axis.v201611.AdExclusionRuleType type;
public AdExclusionRule() {
}
public AdExclusionRule(
java.lang.Long id,
java.lang.String name,
java.lang.Boolean isActive,
com.google.api.ads.dfp.axis.v201611.InventoryTargeting inventoryTargeting,
java.lang.Boolean isBlockAll,
long[] blockedLabelIds,
long[] allowedLabelIds,
com.google.api.ads.dfp.axis.v201611.AdExclusionRuleType type) {
this.id = id;
this.name = name;
this.isActive = isActive;
this.inventoryTargeting = inventoryTargeting;
this.isBlockAll = isBlockAll;
this.blockedLabelIds = blockedLabelIds;
this.allowedLabelIds = allowedLabelIds;
this.type = type;
}
/**
* Gets the id value for this AdExclusionRule.
*
* @return id * The unique ID of the {@code AdExclusionRule}. This attribute
* is readonly and is assigned
* by Google.
*/
public java.lang.Long getId() {
return id;
}
/**
* Sets the id value for this AdExclusionRule.
*
* @param id * The unique ID of the {@code AdExclusionRule}. This attribute
* is readonly and is assigned
* by Google.
*/
public void setId(java.lang.Long id) {
this.id = id;
}
/**
* Gets the name value for this AdExclusionRule.
*
* @return name * The name of the {@code AdExclusionRule}. This attribute is
* required.
*/
public java.lang.String getName() {
return name;
}
/**
* Sets the name value for this AdExclusionRule.
*
* @param name * The name of the {@code AdExclusionRule}. This attribute is
* required.
*/
public void setName(java.lang.String name) {
this.name = name;
}
/**
* Gets the isActive value for this AdExclusionRule.
*
* @return isActive * Whether or not the {@code AdExclusionRule} is active. An inactive
* rule will have no
* effect on adserving. This attribute is readonly.
*/
public java.lang.Boolean getIsActive() {
return isActive;
}
/**
* Sets the isActive value for this AdExclusionRule.
*
* @param isActive * Whether or not the {@code AdExclusionRule} is active. An inactive
* rule will have no
* effect on adserving. This attribute is readonly.
*/
public void setIsActive(java.lang.Boolean isActive) {
this.isActive = isActive;
}
/**
* Gets the inventoryTargeting value for this AdExclusionRule.
*
* @return inventoryTargeting * The targeting information about which {@link AdUnitTargeting}
* objects this rule is in effect
* for. Any {@link AdUnitTargeting} objects included
* here will have their children included
* implicitly. Children of a targeted ad unit can be
* excluded. This attribute is required.
*/
public com.google.api.ads.dfp.axis.v201611.InventoryTargeting getInventoryTargeting() {
return inventoryTargeting;
}
/**
* Sets the inventoryTargeting value for this AdExclusionRule.
*
* @param inventoryTargeting * The targeting information about which {@link AdUnitTargeting}
* objects this rule is in effect
* for. Any {@link AdUnitTargeting} objects included
* here will have their children included
* implicitly. Children of a targeted ad unit can be
* excluded. This attribute is required.
*/
public void setInventoryTargeting(com.google.api.ads.dfp.axis.v201611.InventoryTargeting inventoryTargeting) {
this.inventoryTargeting = inventoryTargeting;
}
/**
* Gets the isBlockAll value for this AdExclusionRule.
*
* @return isBlockAll * Whether or not this rule blocks all ads from serving other
* than the labels or advertisers
* specified. This attribute is optional and defaults
* to false.
*/
public java.lang.Boolean getIsBlockAll() {
return isBlockAll;
}
/**
* Sets the isBlockAll value for this AdExclusionRule.
*
* @param isBlockAll * Whether or not this rule blocks all ads from serving other
* than the labels or advertisers
* specified. This attribute is optional and defaults
* to false.
*/
public void setIsBlockAll(java.lang.Boolean isBlockAll) {
this.isBlockAll = isBlockAll;
}
/**
* Gets the blockedLabelIds value for this AdExclusionRule.
*
* @return blockedLabelIds * The labels that will be blocked from serving. Any advertiser,
* order or line item
* with one of these labels will not serve on the relevant
* ad units and their children.
*/
public long[] getBlockedLabelIds() {
return blockedLabelIds;
}
/**
* Sets the blockedLabelIds value for this AdExclusionRule.
*
* @param blockedLabelIds * The labels that will be blocked from serving. Any advertiser,
* order or line item
* with one of these labels will not serve on the relevant
* ad units and their children.
*/
public void setBlockedLabelIds(long[] blockedLabelIds) {
this.blockedLabelIds = blockedLabelIds;
}
public long getBlockedLabelIds(int i) {
return this.blockedLabelIds[i];
}
public void setBlockedLabelIds(int i, long _value) {
this.blockedLabelIds[i] = _value;
}
/**
* Gets the allowedLabelIds value for this AdExclusionRule.
*
* @return allowedLabelIds * The allowed list of labels that will not be blocked by this
* rule. This trumps the values of
* {@link #isBlockAllLabels} and {@link #blockedLabelIds}.
* For example, if a rule specifies
* a blocked label "Cars", and an allowed label "Sports",
* any ad that is labeled both
* "Sports" and "Cars" will not be blocked by this rule.
*/
public long[] getAllowedLabelIds() {
return allowedLabelIds;
}
/**
* Sets the allowedLabelIds value for this AdExclusionRule.
*
* @param allowedLabelIds * The allowed list of labels that will not be blocked by this
* rule. This trumps the values of
* {@link #isBlockAllLabels} and {@link #blockedLabelIds}.
* For example, if a rule specifies
* a blocked label "Cars", and an allowed label "Sports",
* any ad that is labeled both
* "Sports" and "Cars" will not be blocked by this rule.
*/
public void setAllowedLabelIds(long[] allowedLabelIds) {
this.allowedLabelIds = allowedLabelIds;
}
public long getAllowedLabelIds(int i) {
return this.allowedLabelIds[i];
}
public void setAllowedLabelIds(int i, long _value) {
this.allowedLabelIds[i] = _value;
}
/**
* Gets the type value for this AdExclusionRule.
*
* @return type * The derived type of this rule: whether it is associated with
* labels, unified entities,
* or competitive groups. Because it is derived, it
* is also read-only, so changes made to this
* field will not be persisted.
*/
public com.google.api.ads.dfp.axis.v201611.AdExclusionRuleType getType() {
return type;
}
/**
* Sets the type value for this AdExclusionRule.
*
* @param type * The derived type of this rule: whether it is associated with
* labels, unified entities,
* or competitive groups. Because it is derived, it
* is also read-only, so changes made to this
* field will not be persisted.
*/
public void setType(com.google.api.ads.dfp.axis.v201611.AdExclusionRuleType type) {
this.type = type;
}
private java.lang.Object __equalsCalc = null;
public synchronized boolean equals(java.lang.Object obj) {
if (!(obj instanceof AdExclusionRule)) return false;
AdExclusionRule other = (AdExclusionRule) obj;
if (obj == null) return false;
if (this == obj) return true;
if (__equalsCalc != null) {
return (__equalsCalc == obj);
}
__equalsCalc = obj;
boolean _equals;
_equals = true &&
((this.id==null && other.getId()==null) ||
(this.id!=null &&
this.id.equals(other.getId()))) &&
((this.name==null && other.getName()==null) ||
(this.name!=null &&
this.name.equals(other.getName()))) &&
((this.isActive==null && other.getIsActive()==null) ||
(this.isActive!=null &&
this.isActive.equals(other.getIsActive()))) &&
((this.inventoryTargeting==null && other.getInventoryTargeting()==null) ||
(this.inventoryTargeting!=null &&
this.inventoryTargeting.equals(other.getInventoryTargeting()))) &&
((this.isBlockAll==null && other.getIsBlockAll()==null) ||
(this.isBlockAll!=null &&
this.isBlockAll.equals(other.getIsBlockAll()))) &&
((this.blockedLabelIds==null && other.getBlockedLabelIds()==null) ||
(this.blockedLabelIds!=null &&
java.util.Arrays.equals(this.blockedLabelIds, other.getBlockedLabelIds()))) &&
((this.allowedLabelIds==null && other.getAllowedLabelIds()==null) ||
(this.allowedLabelIds!=null &&
java.util.Arrays.equals(this.allowedLabelIds, other.getAllowedLabelIds()))) &&
((this.type==null && other.getType()==null) ||
(this.type!=null &&
this.type.equals(other.getType())));
__equalsCalc = null;
return _equals;
}
private boolean __hashCodeCalc = false;
public synchronized int hashCode() {
if (__hashCodeCalc) {
return 0;
}
__hashCodeCalc = true;
int _hashCode = 1;
if (getId() != null) {
_hashCode += getId().hashCode();
}
if (getName() != null) {
_hashCode += getName().hashCode();
}
if (getIsActive() != null) {
_hashCode += getIsActive().hashCode();
}
if (getInventoryTargeting() != null) {
_hashCode += getInventoryTargeting().hashCode();
}
if (getIsBlockAll() != null) {
_hashCode += getIsBlockAll().hashCode();
}
if (getBlockedLabelIds() != null) {
for (int i=0;
i<java.lang.reflect.Array.getLength(getBlockedLabelIds());
i++) {
java.lang.Object obj = java.lang.reflect.Array.get(getBlockedLabelIds(), i);
if (obj != null &&
!obj.getClass().isArray()) {
_hashCode += obj.hashCode();
}
}
}
if (getAllowedLabelIds() != null) {
for (int i=0;
i<java.lang.reflect.Array.getLength(getAllowedLabelIds());
i++) {
java.lang.Object obj = java.lang.reflect.Array.get(getAllowedLabelIds(), i);
if (obj != null &&
!obj.getClass().isArray()) {
_hashCode += obj.hashCode();
}
}
}
if (getType() != null) {
_hashCode += getType().hashCode();
}
__hashCodeCalc = false;
return _hashCode;
}
// Type metadata
private static org.apache.axis.description.TypeDesc typeDesc =
new org.apache.axis.description.TypeDesc(AdExclusionRule.class, true);
static {
typeDesc.setXmlType(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201611", "AdExclusionRule"));
org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("id");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201611", "id"));
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("name");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201611", "name"));
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("isActive");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201611", "isActive"));
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("inventoryTargeting");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201611", "inventoryTargeting"));
elemField.setXmlType(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201611", "InventoryTargeting"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("isBlockAll");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201611", "isBlockAll"));
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("blockedLabelIds");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201611", "blockedLabelIds"));
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
elemField.setMaxOccursUnbounded(true);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("allowedLabelIds");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201611", "allowedLabelIds"));
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
elemField.setMaxOccursUnbounded(true);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("type");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201611", "type"));
elemField.setXmlType(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201611", "AdExclusionRuleType"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
typeDesc.addFieldDesc(elemField);
}
/**
* Return type metadata object
*/
public static org.apache.axis.description.TypeDesc getTypeDesc() {
return typeDesc;
}
/**
* Get Custom Serializer
*/
public static org.apache.axis.encoding.Serializer getSerializer(
java.lang.String mechType,
java.lang.Class _javaType,
javax.xml.namespace.QName _xmlType) {
return
new org.apache.axis.encoding.ser.BeanSerializer(
_javaType, _xmlType, typeDesc);
}
/**
* Get Custom Deserializer
*/
public static org.apache.axis.encoding.Deserializer getDeserializer(
java.lang.String mechType,
java.lang.Class _javaType,
javax.xml.namespace.QName _xmlType) {
return
new org.apache.axis.encoding.ser.BeanDeserializer(
_javaType, _xmlType, typeDesc);
}
}