// 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.
/**
* Targeting.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;
/**
* Contains targeting criteria for {@link LineItem} objects. See
* {@link LineItem#targeting}.
*/
public class Targeting implements java.io.Serializable {
/* Specifies what geographical locations are targeted by the {@link
* LineItem}.
* This attribute is optional. */
private com.google.api.ads.dfp.axis.v201611.GeoTargeting geoTargeting;
/* Specifies what inventory is targeted by the {@link LineItem}.
* This attribute is required. The
* line item must target at least one ad unit or placement. */
private com.google.api.ads.dfp.axis.v201611.InventoryTargeting inventoryTargeting;
/* Specifies the days of the week and times that are targeted
* by the
* {@link LineItem}. This attribute is optional. */
private com.google.api.ads.dfp.axis.v201611.DayPartTargeting dayPartTargeting;
/* Specifies the browsing technologies that are targeted by the
* {@link LineItem}. This attribute is optional. */
private com.google.api.ads.dfp.axis.v201611.TechnologyTargeting technologyTargeting;
/* Specifies the collection of custom criteria that is targeted
* by the
* {@link LineItem}.
* <p>
* Once the {@link LineItem} is updated or modified with
* custom targeting, the
* server may return a normalized, but equivalent representation
* of the custom
* targeting expression.
* <p>
* {@code customTargeting} will have up to three levels
* of expressions
* including itself.
* </p>
* <p>
* The top level {@code CustomCriteriaSet} i.e. the {@code
* customTargeting}
* object can only contain a {@link CustomCriteriaSet.LogicalOperator#OR}
* of
* all its children.
* </p>
* <p>
* The second level of {@code CustomCriteriaSet} objects
* can only contain
* {@link CustomCriteriaSet.LogicalOperator#AND} of all
* their children. If
* a {@link CustomCriteria} is placed on this level,
* the server will wrap it
* in a {@link CustomCriteriaSet}.
* </p>
* <p>
* The third level can only comprise of {@link CustomCriteria}
* objects.
* </p>
* <p>
* The resulting custom targeting tree would be of the
* form:
* </p>
* <br/>
* <img src="http://chart.apis.google.com/chart?cht=gv&chl=digraph{customTargeting_LogicalOperator_OR-%3ECustomCriteriaSet_LogicalOperator_AND_1-%3ECustomCriteria_1;CustomCriteriaSet_LogicalOperator_AND_1-%3Eellipsis1;customTargeting_LogicalOperator_OR-%3Eellipsis2;ellipsis1[label=%22...%22,shape=none,fontsize=32];ellipsis2[label=%22...%22,shape=none,fontsize=32]}&chs=450x200"/> */
private com.google.api.ads.dfp.axis.v201611.CustomCriteriaSet customTargeting;
/* Specifies the domains or subdomains that are targeted or excluded
* by the
* {@link LineItem}. Users visiting from an IP address
* associated with
* those domains will be targeted or excluded. This attribute
* is optional. */
private com.google.api.ads.dfp.axis.v201611.UserDomainTargeting userDomainTargeting;
/* Specifies the video categories and individual videos targeted
* by the
* {@link LineItem}. */
private com.google.api.ads.dfp.axis.v201611.ContentTargeting contentTargeting;
/* Specifies targeting against video position types. */
private com.google.api.ads.dfp.axis.v201611.VideoPositionTargeting videoPositionTargeting;
/* Specifies targeting against mobile applications. */
private com.google.api.ads.dfp.axis.v201611.MobileApplicationTargeting mobileApplicationTargeting;
public Targeting() {
}
public Targeting(
com.google.api.ads.dfp.axis.v201611.GeoTargeting geoTargeting,
com.google.api.ads.dfp.axis.v201611.InventoryTargeting inventoryTargeting,
com.google.api.ads.dfp.axis.v201611.DayPartTargeting dayPartTargeting,
com.google.api.ads.dfp.axis.v201611.TechnologyTargeting technologyTargeting,
com.google.api.ads.dfp.axis.v201611.CustomCriteriaSet customTargeting,
com.google.api.ads.dfp.axis.v201611.UserDomainTargeting userDomainTargeting,
com.google.api.ads.dfp.axis.v201611.ContentTargeting contentTargeting,
com.google.api.ads.dfp.axis.v201611.VideoPositionTargeting videoPositionTargeting,
com.google.api.ads.dfp.axis.v201611.MobileApplicationTargeting mobileApplicationTargeting) {
this.geoTargeting = geoTargeting;
this.inventoryTargeting = inventoryTargeting;
this.dayPartTargeting = dayPartTargeting;
this.technologyTargeting = technologyTargeting;
this.customTargeting = customTargeting;
this.userDomainTargeting = userDomainTargeting;
this.contentTargeting = contentTargeting;
this.videoPositionTargeting = videoPositionTargeting;
this.mobileApplicationTargeting = mobileApplicationTargeting;
}
/**
* Gets the geoTargeting value for this Targeting.
*
* @return geoTargeting * Specifies what geographical locations are targeted by the {@link
* LineItem}.
* This attribute is optional.
*/
public com.google.api.ads.dfp.axis.v201611.GeoTargeting getGeoTargeting() {
return geoTargeting;
}
/**
* Sets the geoTargeting value for this Targeting.
*
* @param geoTargeting * Specifies what geographical locations are targeted by the {@link
* LineItem}.
* This attribute is optional.
*/
public void setGeoTargeting(com.google.api.ads.dfp.axis.v201611.GeoTargeting geoTargeting) {
this.geoTargeting = geoTargeting;
}
/**
* Gets the inventoryTargeting value for this Targeting.
*
* @return inventoryTargeting * Specifies what inventory is targeted by the {@link LineItem}.
* This attribute is required. The
* line item must target at least one ad unit or placement.
*/
public com.google.api.ads.dfp.axis.v201611.InventoryTargeting getInventoryTargeting() {
return inventoryTargeting;
}
/**
* Sets the inventoryTargeting value for this Targeting.
*
* @param inventoryTargeting * Specifies what inventory is targeted by the {@link LineItem}.
* This attribute is required. The
* line item must target at least one ad unit or placement.
*/
public void setInventoryTargeting(com.google.api.ads.dfp.axis.v201611.InventoryTargeting inventoryTargeting) {
this.inventoryTargeting = inventoryTargeting;
}
/**
* Gets the dayPartTargeting value for this Targeting.
*
* @return dayPartTargeting * Specifies the days of the week and times that are targeted
* by the
* {@link LineItem}. This attribute is optional.
*/
public com.google.api.ads.dfp.axis.v201611.DayPartTargeting getDayPartTargeting() {
return dayPartTargeting;
}
/**
* Sets the dayPartTargeting value for this Targeting.
*
* @param dayPartTargeting * Specifies the days of the week and times that are targeted
* by the
* {@link LineItem}. This attribute is optional.
*/
public void setDayPartTargeting(com.google.api.ads.dfp.axis.v201611.DayPartTargeting dayPartTargeting) {
this.dayPartTargeting = dayPartTargeting;
}
/**
* Gets the technologyTargeting value for this Targeting.
*
* @return technologyTargeting * Specifies the browsing technologies that are targeted by the
* {@link LineItem}. This attribute is optional.
*/
public com.google.api.ads.dfp.axis.v201611.TechnologyTargeting getTechnologyTargeting() {
return technologyTargeting;
}
/**
* Sets the technologyTargeting value for this Targeting.
*
* @param technologyTargeting * Specifies the browsing technologies that are targeted by the
* {@link LineItem}. This attribute is optional.
*/
public void setTechnologyTargeting(com.google.api.ads.dfp.axis.v201611.TechnologyTargeting technologyTargeting) {
this.technologyTargeting = technologyTargeting;
}
/**
* Gets the customTargeting value for this Targeting.
*
* @return customTargeting * Specifies the collection of custom criteria that is targeted
* by the
* {@link LineItem}.
* <p>
* Once the {@link LineItem} is updated or modified with
* custom targeting, the
* server may return a normalized, but equivalent representation
* of the custom
* targeting expression.
* <p>
* {@code customTargeting} will have up to three levels
* of expressions
* including itself.
* </p>
* <p>
* The top level {@code CustomCriteriaSet} i.e. the {@code
* customTargeting}
* object can only contain a {@link CustomCriteriaSet.LogicalOperator#OR}
* of
* all its children.
* </p>
* <p>
* The second level of {@code CustomCriteriaSet} objects
* can only contain
* {@link CustomCriteriaSet.LogicalOperator#AND} of all
* their children. If
* a {@link CustomCriteria} is placed on this level,
* the server will wrap it
* in a {@link CustomCriteriaSet}.
* </p>
* <p>
* The third level can only comprise of {@link CustomCriteria}
* objects.
* </p>
* <p>
* The resulting custom targeting tree would be of the
* form:
* </p>
* <br/>
* <img src="http://chart.apis.google.com/chart?cht=gv&chl=digraph{customTargeting_LogicalOperator_OR-%3ECustomCriteriaSet_LogicalOperator_AND_1-%3ECustomCriteria_1;CustomCriteriaSet_LogicalOperator_AND_1-%3Eellipsis1;customTargeting_LogicalOperator_OR-%3Eellipsis2;ellipsis1[label=%22...%22,shape=none,fontsize=32];ellipsis2[label=%22...%22,shape=none,fontsize=32]}&chs=450x200"/>
*/
public com.google.api.ads.dfp.axis.v201611.CustomCriteriaSet getCustomTargeting() {
return customTargeting;
}
/**
* Sets the customTargeting value for this Targeting.
*
* @param customTargeting * Specifies the collection of custom criteria that is targeted
* by the
* {@link LineItem}.
* <p>
* Once the {@link LineItem} is updated or modified with
* custom targeting, the
* server may return a normalized, but equivalent representation
* of the custom
* targeting expression.
* <p>
* {@code customTargeting} will have up to three levels
* of expressions
* including itself.
* </p>
* <p>
* The top level {@code CustomCriteriaSet} i.e. the {@code
* customTargeting}
* object can only contain a {@link CustomCriteriaSet.LogicalOperator#OR}
* of
* all its children.
* </p>
* <p>
* The second level of {@code CustomCriteriaSet} objects
* can only contain
* {@link CustomCriteriaSet.LogicalOperator#AND} of all
* their children. If
* a {@link CustomCriteria} is placed on this level,
* the server will wrap it
* in a {@link CustomCriteriaSet}.
* </p>
* <p>
* The third level can only comprise of {@link CustomCriteria}
* objects.
* </p>
* <p>
* The resulting custom targeting tree would be of the
* form:
* </p>
* <br/>
* <img src="http://chart.apis.google.com/chart?cht=gv&chl=digraph{customTargeting_LogicalOperator_OR-%3ECustomCriteriaSet_LogicalOperator_AND_1-%3ECustomCriteria_1;CustomCriteriaSet_LogicalOperator_AND_1-%3Eellipsis1;customTargeting_LogicalOperator_OR-%3Eellipsis2;ellipsis1[label=%22...%22,shape=none,fontsize=32];ellipsis2[label=%22...%22,shape=none,fontsize=32]}&chs=450x200"/>
*/
public void setCustomTargeting(com.google.api.ads.dfp.axis.v201611.CustomCriteriaSet customTargeting) {
this.customTargeting = customTargeting;
}
/**
* Gets the userDomainTargeting value for this Targeting.
*
* @return userDomainTargeting * Specifies the domains or subdomains that are targeted or excluded
* by the
* {@link LineItem}. Users visiting from an IP address
* associated with
* those domains will be targeted or excluded. This attribute
* is optional.
*/
public com.google.api.ads.dfp.axis.v201611.UserDomainTargeting getUserDomainTargeting() {
return userDomainTargeting;
}
/**
* Sets the userDomainTargeting value for this Targeting.
*
* @param userDomainTargeting * Specifies the domains or subdomains that are targeted or excluded
* by the
* {@link LineItem}. Users visiting from an IP address
* associated with
* those domains will be targeted or excluded. This attribute
* is optional.
*/
public void setUserDomainTargeting(com.google.api.ads.dfp.axis.v201611.UserDomainTargeting userDomainTargeting) {
this.userDomainTargeting = userDomainTargeting;
}
/**
* Gets the contentTargeting value for this Targeting.
*
* @return contentTargeting * Specifies the video categories and individual videos targeted
* by the
* {@link LineItem}.
*/
public com.google.api.ads.dfp.axis.v201611.ContentTargeting getContentTargeting() {
return contentTargeting;
}
/**
* Sets the contentTargeting value for this Targeting.
*
* @param contentTargeting * Specifies the video categories and individual videos targeted
* by the
* {@link LineItem}.
*/
public void setContentTargeting(com.google.api.ads.dfp.axis.v201611.ContentTargeting contentTargeting) {
this.contentTargeting = contentTargeting;
}
/**
* Gets the videoPositionTargeting value for this Targeting.
*
* @return videoPositionTargeting * Specifies targeting against video position types.
*/
public com.google.api.ads.dfp.axis.v201611.VideoPositionTargeting getVideoPositionTargeting() {
return videoPositionTargeting;
}
/**
* Sets the videoPositionTargeting value for this Targeting.
*
* @param videoPositionTargeting * Specifies targeting against video position types.
*/
public void setVideoPositionTargeting(com.google.api.ads.dfp.axis.v201611.VideoPositionTargeting videoPositionTargeting) {
this.videoPositionTargeting = videoPositionTargeting;
}
/**
* Gets the mobileApplicationTargeting value for this Targeting.
*
* @return mobileApplicationTargeting * Specifies targeting against mobile applications.
*/
public com.google.api.ads.dfp.axis.v201611.MobileApplicationTargeting getMobileApplicationTargeting() {
return mobileApplicationTargeting;
}
/**
* Sets the mobileApplicationTargeting value for this Targeting.
*
* @param mobileApplicationTargeting * Specifies targeting against mobile applications.
*/
public void setMobileApplicationTargeting(com.google.api.ads.dfp.axis.v201611.MobileApplicationTargeting mobileApplicationTargeting) {
this.mobileApplicationTargeting = mobileApplicationTargeting;
}
private java.lang.Object __equalsCalc = null;
public synchronized boolean equals(java.lang.Object obj) {
if (!(obj instanceof Targeting)) return false;
Targeting other = (Targeting) obj;
if (obj == null) return false;
if (this == obj) return true;
if (__equalsCalc != null) {
return (__equalsCalc == obj);
}
__equalsCalc = obj;
boolean _equals;
_equals = true &&
((this.geoTargeting==null && other.getGeoTargeting()==null) ||
(this.geoTargeting!=null &&
this.geoTargeting.equals(other.getGeoTargeting()))) &&
((this.inventoryTargeting==null && other.getInventoryTargeting()==null) ||
(this.inventoryTargeting!=null &&
this.inventoryTargeting.equals(other.getInventoryTargeting()))) &&
((this.dayPartTargeting==null && other.getDayPartTargeting()==null) ||
(this.dayPartTargeting!=null &&
this.dayPartTargeting.equals(other.getDayPartTargeting()))) &&
((this.technologyTargeting==null && other.getTechnologyTargeting()==null) ||
(this.technologyTargeting!=null &&
this.technologyTargeting.equals(other.getTechnologyTargeting()))) &&
((this.customTargeting==null && other.getCustomTargeting()==null) ||
(this.customTargeting!=null &&
this.customTargeting.equals(other.getCustomTargeting()))) &&
((this.userDomainTargeting==null && other.getUserDomainTargeting()==null) ||
(this.userDomainTargeting!=null &&
this.userDomainTargeting.equals(other.getUserDomainTargeting()))) &&
((this.contentTargeting==null && other.getContentTargeting()==null) ||
(this.contentTargeting!=null &&
this.contentTargeting.equals(other.getContentTargeting()))) &&
((this.videoPositionTargeting==null && other.getVideoPositionTargeting()==null) ||
(this.videoPositionTargeting!=null &&
this.videoPositionTargeting.equals(other.getVideoPositionTargeting()))) &&
((this.mobileApplicationTargeting==null && other.getMobileApplicationTargeting()==null) ||
(this.mobileApplicationTargeting!=null &&
this.mobileApplicationTargeting.equals(other.getMobileApplicationTargeting())));
__equalsCalc = null;
return _equals;
}
private boolean __hashCodeCalc = false;
public synchronized int hashCode() {
if (__hashCodeCalc) {
return 0;
}
__hashCodeCalc = true;
int _hashCode = 1;
if (getGeoTargeting() != null) {
_hashCode += getGeoTargeting().hashCode();
}
if (getInventoryTargeting() != null) {
_hashCode += getInventoryTargeting().hashCode();
}
if (getDayPartTargeting() != null) {
_hashCode += getDayPartTargeting().hashCode();
}
if (getTechnologyTargeting() != null) {
_hashCode += getTechnologyTargeting().hashCode();
}
if (getCustomTargeting() != null) {
_hashCode += getCustomTargeting().hashCode();
}
if (getUserDomainTargeting() != null) {
_hashCode += getUserDomainTargeting().hashCode();
}
if (getContentTargeting() != null) {
_hashCode += getContentTargeting().hashCode();
}
if (getVideoPositionTargeting() != null) {
_hashCode += getVideoPositionTargeting().hashCode();
}
if (getMobileApplicationTargeting() != null) {
_hashCode += getMobileApplicationTargeting().hashCode();
}
__hashCodeCalc = false;
return _hashCode;
}
// Type metadata
private static org.apache.axis.description.TypeDesc typeDesc =
new org.apache.axis.description.TypeDesc(Targeting.class, true);
static {
typeDesc.setXmlType(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201611", "Targeting"));
org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("geoTargeting");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201611", "geoTargeting"));
elemField.setXmlType(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201611", "GeoTargeting"));
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("dayPartTargeting");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201611", "dayPartTargeting"));
elemField.setXmlType(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201611", "DayPartTargeting"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("technologyTargeting");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201611", "technologyTargeting"));
elemField.setXmlType(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201611", "TechnologyTargeting"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("customTargeting");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201611", "customTargeting"));
elemField.setXmlType(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201611", "CustomCriteriaSet"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("userDomainTargeting");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201611", "userDomainTargeting"));
elemField.setXmlType(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201611", "UserDomainTargeting"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("contentTargeting");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201611", "contentTargeting"));
elemField.setXmlType(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201611", "ContentTargeting"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("videoPositionTargeting");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201611", "videoPositionTargeting"));
elemField.setXmlType(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201611", "VideoPositionTargeting"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("mobileApplicationTargeting");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201611", "mobileApplicationTargeting"));
elemField.setXmlType(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201611", "MobileApplicationTargeting"));
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);
}
}