// Copyright 2017 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.
/**
* ProductSegmentation.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.v201702;
/**
* Segmentations used to create products. Within a product template,
* for each segmentation,
* a product will be created for the combination of all other
* segments within other segmentations.
* <p>
* For example, a product with 3 segmentations with only
* 1 segment for each will produce
* {@code 1 x 1 x 1 = 1} product.
* A product with 3 segmentations with 2 segments for each
* will produce {@code 2 x 2 x 2 = 8}
* products.
*/
public class ProductSegmentation implements java.io.Serializable {
/* The geographic segmentation. Segments should be set on the
* {@link GeoTargeting#targetedLocations} field.
*
* <p>This attribute is optional. */
private com.google.api.ads.dfp.axis.v201702.GeoTargeting geoSegment;
/* The ad unit targeting segmentation. For each ad unit segment,
* {@link AdUnitTargeting#includeDescendants} must be true.
*
* <p>This attribute is optional. */
private com.google.api.ads.dfp.axis.v201702.AdUnitTargeting[] adUnitSegments;
/* The placement targeting segmentation.
*
* <p>This attribute is optional. */
private com.google.api.ads.dfp.axis.v201702.PlacementTargeting placementSegment;
/* The custom targeting segmentation.
*
* <p>This attribute is optional. */
private com.google.api.ads.dfp.axis.v201702.CustomCriteria[] customTargetingSegment;
/* The user domain segmentation. {@link UserDomainTargeting#isTargeted}
* must be {@code true}.
*
* <p>This attribute is optional. */
private com.google.api.ads.dfp.axis.v201702.UserDomainTargeting userDomainSegment;
/* The bandwidth segmentation. {@link BandwidthGroupTargeting#isTargeted}
* must be {@code true}.
*
* <p>This attribute is optional. */
private com.google.api.ads.dfp.axis.v201702.BandwidthGroupTargeting bandwidthSegment;
/* The browser segmentation. {@link BrowserTargeting#isTargeted}
* must be {@code true}.
*
* <p>This attribute is optional. */
private com.google.api.ads.dfp.axis.v201702.BrowserTargeting browserSegment;
/* The browser language segmentation. {@link BrowserLanguageTargeting#isTargeted}
* must be {@code true}.
*
* <p>This attribute is optional. */
private com.google.api.ads.dfp.axis.v201702.BrowserLanguageTargeting browserLanguageSegment;
/* The operating system segmentation. {@link OperatingSystemTargeting#isTargeted}
* must be {@code true}.
* We only allow segment by Operating_System, not Operating_System_Version
* (will be ignored).
*
* <p>This attribute is optional. */
private com.google.api.ads.dfp.axis.v201702.OperatingSystemTargeting operatingSystemSegment;
/* The mobile carrier segmentation. {@link MobileCarrierTargeting#isTargeted}
* must be
* {@code true}.
*
* <p>This attribute is optional. */
private com.google.api.ads.dfp.axis.v201702.MobileCarrierTargeting mobileCarrierSegment;
/* The device capability segmentation.
* {@link DeviceCapabilityTargeting#excludedDeviceCapabilities}
* must be empty or null.
*
* <p>This attribute is optional. */
private com.google.api.ads.dfp.axis.v201702.DeviceCapabilityTargeting deviceCapabilitySegment;
/* The device category segmentation. {@link DeviceCategoryTargeting#excludedDeviceCategories}
* must be empty or null.
*
* <p>This attribute is optional. */
private com.google.api.ads.dfp.axis.v201702.DeviceCategoryTargeting deviceCategorySegment;
/* The device manufacturer segmentation. {@link DeviceFamilyTargeting#isTargeted}
* must be
* {@code true}.
*
* <p>This attribute is optional. */
private com.google.api.ads.dfp.axis.v201702.DeviceManufacturerTargeting deviceManufacturerSegment;
/* The mobile device segmentation. {@link MobileDeviceTargeting#excludedMobileDevices}
* must be
* empty or null.
*
* <p>This attribute is optional. */
private com.google.api.ads.dfp.axis.v201702.MobileDeviceTargeting mobileDeviceSegment;
/* The mobile device submodel segmentation.
* {@link MobileDeviceSubmodelTargeting#excludedMobileDeviceSubmodels}
* must be empty or null. */
private com.google.api.ads.dfp.axis.v201702.MobileDeviceSubmodelTargeting mobileDeviceSubmodelSegment;
/* The video position segmentation.
*
* <p>This attribute is optional. */
private com.google.api.ads.dfp.axis.v201702.VideoPositionTargeting videoPositionSegment;
public ProductSegmentation() {
}
public ProductSegmentation(
com.google.api.ads.dfp.axis.v201702.GeoTargeting geoSegment,
com.google.api.ads.dfp.axis.v201702.AdUnitTargeting[] adUnitSegments,
com.google.api.ads.dfp.axis.v201702.PlacementTargeting placementSegment,
com.google.api.ads.dfp.axis.v201702.CustomCriteria[] customTargetingSegment,
com.google.api.ads.dfp.axis.v201702.UserDomainTargeting userDomainSegment,
com.google.api.ads.dfp.axis.v201702.BandwidthGroupTargeting bandwidthSegment,
com.google.api.ads.dfp.axis.v201702.BrowserTargeting browserSegment,
com.google.api.ads.dfp.axis.v201702.BrowserLanguageTargeting browserLanguageSegment,
com.google.api.ads.dfp.axis.v201702.OperatingSystemTargeting operatingSystemSegment,
com.google.api.ads.dfp.axis.v201702.MobileCarrierTargeting mobileCarrierSegment,
com.google.api.ads.dfp.axis.v201702.DeviceCapabilityTargeting deviceCapabilitySegment,
com.google.api.ads.dfp.axis.v201702.DeviceCategoryTargeting deviceCategorySegment,
com.google.api.ads.dfp.axis.v201702.DeviceManufacturerTargeting deviceManufacturerSegment,
com.google.api.ads.dfp.axis.v201702.MobileDeviceTargeting mobileDeviceSegment,
com.google.api.ads.dfp.axis.v201702.MobileDeviceSubmodelTargeting mobileDeviceSubmodelSegment,
com.google.api.ads.dfp.axis.v201702.VideoPositionTargeting videoPositionSegment) {
this.geoSegment = geoSegment;
this.adUnitSegments = adUnitSegments;
this.placementSegment = placementSegment;
this.customTargetingSegment = customTargetingSegment;
this.userDomainSegment = userDomainSegment;
this.bandwidthSegment = bandwidthSegment;
this.browserSegment = browserSegment;
this.browserLanguageSegment = browserLanguageSegment;
this.operatingSystemSegment = operatingSystemSegment;
this.mobileCarrierSegment = mobileCarrierSegment;
this.deviceCapabilitySegment = deviceCapabilitySegment;
this.deviceCategorySegment = deviceCategorySegment;
this.deviceManufacturerSegment = deviceManufacturerSegment;
this.mobileDeviceSegment = mobileDeviceSegment;
this.mobileDeviceSubmodelSegment = mobileDeviceSubmodelSegment;
this.videoPositionSegment = videoPositionSegment;
}
/**
* Gets the geoSegment value for this ProductSegmentation.
*
* @return geoSegment * The geographic segmentation. Segments should be set on the
* {@link GeoTargeting#targetedLocations} field.
*
* <p>This attribute is optional.
*/
public com.google.api.ads.dfp.axis.v201702.GeoTargeting getGeoSegment() {
return geoSegment;
}
/**
* Sets the geoSegment value for this ProductSegmentation.
*
* @param geoSegment * The geographic segmentation. Segments should be set on the
* {@link GeoTargeting#targetedLocations} field.
*
* <p>This attribute is optional.
*/
public void setGeoSegment(com.google.api.ads.dfp.axis.v201702.GeoTargeting geoSegment) {
this.geoSegment = geoSegment;
}
/**
* Gets the adUnitSegments value for this ProductSegmentation.
*
* @return adUnitSegments * The ad unit targeting segmentation. For each ad unit segment,
* {@link AdUnitTargeting#includeDescendants} must be true.
*
* <p>This attribute is optional.
*/
public com.google.api.ads.dfp.axis.v201702.AdUnitTargeting[] getAdUnitSegments() {
return adUnitSegments;
}
/**
* Sets the adUnitSegments value for this ProductSegmentation.
*
* @param adUnitSegments * The ad unit targeting segmentation. For each ad unit segment,
* {@link AdUnitTargeting#includeDescendants} must be true.
*
* <p>This attribute is optional.
*/
public void setAdUnitSegments(com.google.api.ads.dfp.axis.v201702.AdUnitTargeting[] adUnitSegments) {
this.adUnitSegments = adUnitSegments;
}
public com.google.api.ads.dfp.axis.v201702.AdUnitTargeting getAdUnitSegments(int i) {
return this.adUnitSegments[i];
}
public void setAdUnitSegments(int i, com.google.api.ads.dfp.axis.v201702.AdUnitTargeting _value) {
this.adUnitSegments[i] = _value;
}
/**
* Gets the placementSegment value for this ProductSegmentation.
*
* @return placementSegment * The placement targeting segmentation.
*
* <p>This attribute is optional.
*/
public com.google.api.ads.dfp.axis.v201702.PlacementTargeting getPlacementSegment() {
return placementSegment;
}
/**
* Sets the placementSegment value for this ProductSegmentation.
*
* @param placementSegment * The placement targeting segmentation.
*
* <p>This attribute is optional.
*/
public void setPlacementSegment(com.google.api.ads.dfp.axis.v201702.PlacementTargeting placementSegment) {
this.placementSegment = placementSegment;
}
/**
* Gets the customTargetingSegment value for this ProductSegmentation.
*
* @return customTargetingSegment * The custom targeting segmentation.
*
* <p>This attribute is optional.
*/
public com.google.api.ads.dfp.axis.v201702.CustomCriteria[] getCustomTargetingSegment() {
return customTargetingSegment;
}
/**
* Sets the customTargetingSegment value for this ProductSegmentation.
*
* @param customTargetingSegment * The custom targeting segmentation.
*
* <p>This attribute is optional.
*/
public void setCustomTargetingSegment(com.google.api.ads.dfp.axis.v201702.CustomCriteria[] customTargetingSegment) {
this.customTargetingSegment = customTargetingSegment;
}
public com.google.api.ads.dfp.axis.v201702.CustomCriteria getCustomTargetingSegment(int i) {
return this.customTargetingSegment[i];
}
public void setCustomTargetingSegment(int i, com.google.api.ads.dfp.axis.v201702.CustomCriteria _value) {
this.customTargetingSegment[i] = _value;
}
/**
* Gets the userDomainSegment value for this ProductSegmentation.
*
* @return userDomainSegment * The user domain segmentation. {@link UserDomainTargeting#isTargeted}
* must be {@code true}.
*
* <p>This attribute is optional.
*/
public com.google.api.ads.dfp.axis.v201702.UserDomainTargeting getUserDomainSegment() {
return userDomainSegment;
}
/**
* Sets the userDomainSegment value for this ProductSegmentation.
*
* @param userDomainSegment * The user domain segmentation. {@link UserDomainTargeting#isTargeted}
* must be {@code true}.
*
* <p>This attribute is optional.
*/
public void setUserDomainSegment(com.google.api.ads.dfp.axis.v201702.UserDomainTargeting userDomainSegment) {
this.userDomainSegment = userDomainSegment;
}
/**
* Gets the bandwidthSegment value for this ProductSegmentation.
*
* @return bandwidthSegment * The bandwidth segmentation. {@link BandwidthGroupTargeting#isTargeted}
* must be {@code true}.
*
* <p>This attribute is optional.
*/
public com.google.api.ads.dfp.axis.v201702.BandwidthGroupTargeting getBandwidthSegment() {
return bandwidthSegment;
}
/**
* Sets the bandwidthSegment value for this ProductSegmentation.
*
* @param bandwidthSegment * The bandwidth segmentation. {@link BandwidthGroupTargeting#isTargeted}
* must be {@code true}.
*
* <p>This attribute is optional.
*/
public void setBandwidthSegment(com.google.api.ads.dfp.axis.v201702.BandwidthGroupTargeting bandwidthSegment) {
this.bandwidthSegment = bandwidthSegment;
}
/**
* Gets the browserSegment value for this ProductSegmentation.
*
* @return browserSegment * The browser segmentation. {@link BrowserTargeting#isTargeted}
* must be {@code true}.
*
* <p>This attribute is optional.
*/
public com.google.api.ads.dfp.axis.v201702.BrowserTargeting getBrowserSegment() {
return browserSegment;
}
/**
* Sets the browserSegment value for this ProductSegmentation.
*
* @param browserSegment * The browser segmentation. {@link BrowserTargeting#isTargeted}
* must be {@code true}.
*
* <p>This attribute is optional.
*/
public void setBrowserSegment(com.google.api.ads.dfp.axis.v201702.BrowserTargeting browserSegment) {
this.browserSegment = browserSegment;
}
/**
* Gets the browserLanguageSegment value for this ProductSegmentation.
*
* @return browserLanguageSegment * The browser language segmentation. {@link BrowserLanguageTargeting#isTargeted}
* must be {@code true}.
*
* <p>This attribute is optional.
*/
public com.google.api.ads.dfp.axis.v201702.BrowserLanguageTargeting getBrowserLanguageSegment() {
return browserLanguageSegment;
}
/**
* Sets the browserLanguageSegment value for this ProductSegmentation.
*
* @param browserLanguageSegment * The browser language segmentation. {@link BrowserLanguageTargeting#isTargeted}
* must be {@code true}.
*
* <p>This attribute is optional.
*/
public void setBrowserLanguageSegment(com.google.api.ads.dfp.axis.v201702.BrowserLanguageTargeting browserLanguageSegment) {
this.browserLanguageSegment = browserLanguageSegment;
}
/**
* Gets the operatingSystemSegment value for this ProductSegmentation.
*
* @return operatingSystemSegment * The operating system segmentation. {@link OperatingSystemTargeting#isTargeted}
* must be {@code true}.
* We only allow segment by Operating_System, not Operating_System_Version
* (will be ignored).
*
* <p>This attribute is optional.
*/
public com.google.api.ads.dfp.axis.v201702.OperatingSystemTargeting getOperatingSystemSegment() {
return operatingSystemSegment;
}
/**
* Sets the operatingSystemSegment value for this ProductSegmentation.
*
* @param operatingSystemSegment * The operating system segmentation. {@link OperatingSystemTargeting#isTargeted}
* must be {@code true}.
* We only allow segment by Operating_System, not Operating_System_Version
* (will be ignored).
*
* <p>This attribute is optional.
*/
public void setOperatingSystemSegment(com.google.api.ads.dfp.axis.v201702.OperatingSystemTargeting operatingSystemSegment) {
this.operatingSystemSegment = operatingSystemSegment;
}
/**
* Gets the mobileCarrierSegment value for this ProductSegmentation.
*
* @return mobileCarrierSegment * The mobile carrier segmentation. {@link MobileCarrierTargeting#isTargeted}
* must be
* {@code true}.
*
* <p>This attribute is optional.
*/
public com.google.api.ads.dfp.axis.v201702.MobileCarrierTargeting getMobileCarrierSegment() {
return mobileCarrierSegment;
}
/**
* Sets the mobileCarrierSegment value for this ProductSegmentation.
*
* @param mobileCarrierSegment * The mobile carrier segmentation. {@link MobileCarrierTargeting#isTargeted}
* must be
* {@code true}.
*
* <p>This attribute is optional.
*/
public void setMobileCarrierSegment(com.google.api.ads.dfp.axis.v201702.MobileCarrierTargeting mobileCarrierSegment) {
this.mobileCarrierSegment = mobileCarrierSegment;
}
/**
* Gets the deviceCapabilitySegment value for this ProductSegmentation.
*
* @return deviceCapabilitySegment * The device capability segmentation.
* {@link DeviceCapabilityTargeting#excludedDeviceCapabilities}
* must be empty or null.
*
* <p>This attribute is optional.
*/
public com.google.api.ads.dfp.axis.v201702.DeviceCapabilityTargeting getDeviceCapabilitySegment() {
return deviceCapabilitySegment;
}
/**
* Sets the deviceCapabilitySegment value for this ProductSegmentation.
*
* @param deviceCapabilitySegment * The device capability segmentation.
* {@link DeviceCapabilityTargeting#excludedDeviceCapabilities}
* must be empty or null.
*
* <p>This attribute is optional.
*/
public void setDeviceCapabilitySegment(com.google.api.ads.dfp.axis.v201702.DeviceCapabilityTargeting deviceCapabilitySegment) {
this.deviceCapabilitySegment = deviceCapabilitySegment;
}
/**
* Gets the deviceCategorySegment value for this ProductSegmentation.
*
* @return deviceCategorySegment * The device category segmentation. {@link DeviceCategoryTargeting#excludedDeviceCategories}
* must be empty or null.
*
* <p>This attribute is optional.
*/
public com.google.api.ads.dfp.axis.v201702.DeviceCategoryTargeting getDeviceCategorySegment() {
return deviceCategorySegment;
}
/**
* Sets the deviceCategorySegment value for this ProductSegmentation.
*
* @param deviceCategorySegment * The device category segmentation. {@link DeviceCategoryTargeting#excludedDeviceCategories}
* must be empty or null.
*
* <p>This attribute is optional.
*/
public void setDeviceCategorySegment(com.google.api.ads.dfp.axis.v201702.DeviceCategoryTargeting deviceCategorySegment) {
this.deviceCategorySegment = deviceCategorySegment;
}
/**
* Gets the deviceManufacturerSegment value for this ProductSegmentation.
*
* @return deviceManufacturerSegment * The device manufacturer segmentation. {@link DeviceFamilyTargeting#isTargeted}
* must be
* {@code true}.
*
* <p>This attribute is optional.
*/
public com.google.api.ads.dfp.axis.v201702.DeviceManufacturerTargeting getDeviceManufacturerSegment() {
return deviceManufacturerSegment;
}
/**
* Sets the deviceManufacturerSegment value for this ProductSegmentation.
*
* @param deviceManufacturerSegment * The device manufacturer segmentation. {@link DeviceFamilyTargeting#isTargeted}
* must be
* {@code true}.
*
* <p>This attribute is optional.
*/
public void setDeviceManufacturerSegment(com.google.api.ads.dfp.axis.v201702.DeviceManufacturerTargeting deviceManufacturerSegment) {
this.deviceManufacturerSegment = deviceManufacturerSegment;
}
/**
* Gets the mobileDeviceSegment value for this ProductSegmentation.
*
* @return mobileDeviceSegment * The mobile device segmentation. {@link MobileDeviceTargeting#excludedMobileDevices}
* must be
* empty or null.
*
* <p>This attribute is optional.
*/
public com.google.api.ads.dfp.axis.v201702.MobileDeviceTargeting getMobileDeviceSegment() {
return mobileDeviceSegment;
}
/**
* Sets the mobileDeviceSegment value for this ProductSegmentation.
*
* @param mobileDeviceSegment * The mobile device segmentation. {@link MobileDeviceTargeting#excludedMobileDevices}
* must be
* empty or null.
*
* <p>This attribute is optional.
*/
public void setMobileDeviceSegment(com.google.api.ads.dfp.axis.v201702.MobileDeviceTargeting mobileDeviceSegment) {
this.mobileDeviceSegment = mobileDeviceSegment;
}
/**
* Gets the mobileDeviceSubmodelSegment value for this ProductSegmentation.
*
* @return mobileDeviceSubmodelSegment * The mobile device submodel segmentation.
* {@link MobileDeviceSubmodelTargeting#excludedMobileDeviceSubmodels}
* must be empty or null.
*/
public com.google.api.ads.dfp.axis.v201702.MobileDeviceSubmodelTargeting getMobileDeviceSubmodelSegment() {
return mobileDeviceSubmodelSegment;
}
/**
* Sets the mobileDeviceSubmodelSegment value for this ProductSegmentation.
*
* @param mobileDeviceSubmodelSegment * The mobile device submodel segmentation.
* {@link MobileDeviceSubmodelTargeting#excludedMobileDeviceSubmodels}
* must be empty or null.
*/
public void setMobileDeviceSubmodelSegment(com.google.api.ads.dfp.axis.v201702.MobileDeviceSubmodelTargeting mobileDeviceSubmodelSegment) {
this.mobileDeviceSubmodelSegment = mobileDeviceSubmodelSegment;
}
/**
* Gets the videoPositionSegment value for this ProductSegmentation.
*
* @return videoPositionSegment * The video position segmentation.
*
* <p>This attribute is optional.
*/
public com.google.api.ads.dfp.axis.v201702.VideoPositionTargeting getVideoPositionSegment() {
return videoPositionSegment;
}
/**
* Sets the videoPositionSegment value for this ProductSegmentation.
*
* @param videoPositionSegment * The video position segmentation.
*
* <p>This attribute is optional.
*/
public void setVideoPositionSegment(com.google.api.ads.dfp.axis.v201702.VideoPositionTargeting videoPositionSegment) {
this.videoPositionSegment = videoPositionSegment;
}
private java.lang.Object __equalsCalc = null;
public synchronized boolean equals(java.lang.Object obj) {
if (!(obj instanceof ProductSegmentation)) return false;
ProductSegmentation other = (ProductSegmentation) obj;
if (obj == null) return false;
if (this == obj) return true;
if (__equalsCalc != null) {
return (__equalsCalc == obj);
}
__equalsCalc = obj;
boolean _equals;
_equals = true &&
((this.geoSegment==null && other.getGeoSegment()==null) ||
(this.geoSegment!=null &&
this.geoSegment.equals(other.getGeoSegment()))) &&
((this.adUnitSegments==null && other.getAdUnitSegments()==null) ||
(this.adUnitSegments!=null &&
java.util.Arrays.equals(this.adUnitSegments, other.getAdUnitSegments()))) &&
((this.placementSegment==null && other.getPlacementSegment()==null) ||
(this.placementSegment!=null &&
this.placementSegment.equals(other.getPlacementSegment()))) &&
((this.customTargetingSegment==null && other.getCustomTargetingSegment()==null) ||
(this.customTargetingSegment!=null &&
java.util.Arrays.equals(this.customTargetingSegment, other.getCustomTargetingSegment()))) &&
((this.userDomainSegment==null && other.getUserDomainSegment()==null) ||
(this.userDomainSegment!=null &&
this.userDomainSegment.equals(other.getUserDomainSegment()))) &&
((this.bandwidthSegment==null && other.getBandwidthSegment()==null) ||
(this.bandwidthSegment!=null &&
this.bandwidthSegment.equals(other.getBandwidthSegment()))) &&
((this.browserSegment==null && other.getBrowserSegment()==null) ||
(this.browserSegment!=null &&
this.browserSegment.equals(other.getBrowserSegment()))) &&
((this.browserLanguageSegment==null && other.getBrowserLanguageSegment()==null) ||
(this.browserLanguageSegment!=null &&
this.browserLanguageSegment.equals(other.getBrowserLanguageSegment()))) &&
((this.operatingSystemSegment==null && other.getOperatingSystemSegment()==null) ||
(this.operatingSystemSegment!=null &&
this.operatingSystemSegment.equals(other.getOperatingSystemSegment()))) &&
((this.mobileCarrierSegment==null && other.getMobileCarrierSegment()==null) ||
(this.mobileCarrierSegment!=null &&
this.mobileCarrierSegment.equals(other.getMobileCarrierSegment()))) &&
((this.deviceCapabilitySegment==null && other.getDeviceCapabilitySegment()==null) ||
(this.deviceCapabilitySegment!=null &&
this.deviceCapabilitySegment.equals(other.getDeviceCapabilitySegment()))) &&
((this.deviceCategorySegment==null && other.getDeviceCategorySegment()==null) ||
(this.deviceCategorySegment!=null &&
this.deviceCategorySegment.equals(other.getDeviceCategorySegment()))) &&
((this.deviceManufacturerSegment==null && other.getDeviceManufacturerSegment()==null) ||
(this.deviceManufacturerSegment!=null &&
this.deviceManufacturerSegment.equals(other.getDeviceManufacturerSegment()))) &&
((this.mobileDeviceSegment==null && other.getMobileDeviceSegment()==null) ||
(this.mobileDeviceSegment!=null &&
this.mobileDeviceSegment.equals(other.getMobileDeviceSegment()))) &&
((this.mobileDeviceSubmodelSegment==null && other.getMobileDeviceSubmodelSegment()==null) ||
(this.mobileDeviceSubmodelSegment!=null &&
this.mobileDeviceSubmodelSegment.equals(other.getMobileDeviceSubmodelSegment()))) &&
((this.videoPositionSegment==null && other.getVideoPositionSegment()==null) ||
(this.videoPositionSegment!=null &&
this.videoPositionSegment.equals(other.getVideoPositionSegment())));
__equalsCalc = null;
return _equals;
}
private boolean __hashCodeCalc = false;
public synchronized int hashCode() {
if (__hashCodeCalc) {
return 0;
}
__hashCodeCalc = true;
int _hashCode = 1;
if (getGeoSegment() != null) {
_hashCode += getGeoSegment().hashCode();
}
if (getAdUnitSegments() != null) {
for (int i=0;
i<java.lang.reflect.Array.getLength(getAdUnitSegments());
i++) {
java.lang.Object obj = java.lang.reflect.Array.get(getAdUnitSegments(), i);
if (obj != null &&
!obj.getClass().isArray()) {
_hashCode += obj.hashCode();
}
}
}
if (getPlacementSegment() != null) {
_hashCode += getPlacementSegment().hashCode();
}
if (getCustomTargetingSegment() != null) {
for (int i=0;
i<java.lang.reflect.Array.getLength(getCustomTargetingSegment());
i++) {
java.lang.Object obj = java.lang.reflect.Array.get(getCustomTargetingSegment(), i);
if (obj != null &&
!obj.getClass().isArray()) {
_hashCode += obj.hashCode();
}
}
}
if (getUserDomainSegment() != null) {
_hashCode += getUserDomainSegment().hashCode();
}
if (getBandwidthSegment() != null) {
_hashCode += getBandwidthSegment().hashCode();
}
if (getBrowserSegment() != null) {
_hashCode += getBrowserSegment().hashCode();
}
if (getBrowserLanguageSegment() != null) {
_hashCode += getBrowserLanguageSegment().hashCode();
}
if (getOperatingSystemSegment() != null) {
_hashCode += getOperatingSystemSegment().hashCode();
}
if (getMobileCarrierSegment() != null) {
_hashCode += getMobileCarrierSegment().hashCode();
}
if (getDeviceCapabilitySegment() != null) {
_hashCode += getDeviceCapabilitySegment().hashCode();
}
if (getDeviceCategorySegment() != null) {
_hashCode += getDeviceCategorySegment().hashCode();
}
if (getDeviceManufacturerSegment() != null) {
_hashCode += getDeviceManufacturerSegment().hashCode();
}
if (getMobileDeviceSegment() != null) {
_hashCode += getMobileDeviceSegment().hashCode();
}
if (getMobileDeviceSubmodelSegment() != null) {
_hashCode += getMobileDeviceSubmodelSegment().hashCode();
}
if (getVideoPositionSegment() != null) {
_hashCode += getVideoPositionSegment().hashCode();
}
__hashCodeCalc = false;
return _hashCode;
}
// Type metadata
private static org.apache.axis.description.TypeDesc typeDesc =
new org.apache.axis.description.TypeDesc(ProductSegmentation.class, true);
static {
typeDesc.setXmlType(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "ProductSegmentation"));
org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("geoSegment");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "geoSegment"));
elemField.setXmlType(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "GeoTargeting"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("adUnitSegments");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "adUnitSegments"));
elemField.setXmlType(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "AdUnitTargeting"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
elemField.setMaxOccursUnbounded(true);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("placementSegment");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "placementSegment"));
elemField.setXmlType(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "PlacementTargeting"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("customTargetingSegment");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "customTargetingSegment"));
elemField.setXmlType(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "CustomCriteria"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
elemField.setMaxOccursUnbounded(true);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("userDomainSegment");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "userDomainSegment"));
elemField.setXmlType(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "UserDomainTargeting"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("bandwidthSegment");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "bandwidthSegment"));
elemField.setXmlType(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "BandwidthGroupTargeting"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("browserSegment");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "browserSegment"));
elemField.setXmlType(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "BrowserTargeting"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("browserLanguageSegment");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "browserLanguageSegment"));
elemField.setXmlType(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "BrowserLanguageTargeting"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("operatingSystemSegment");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "operatingSystemSegment"));
elemField.setXmlType(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "OperatingSystemTargeting"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("mobileCarrierSegment");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "mobileCarrierSegment"));
elemField.setXmlType(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "MobileCarrierTargeting"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("deviceCapabilitySegment");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "deviceCapabilitySegment"));
elemField.setXmlType(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "DeviceCapabilityTargeting"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("deviceCategorySegment");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "deviceCategorySegment"));
elemField.setXmlType(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "DeviceCategoryTargeting"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("deviceManufacturerSegment");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "deviceManufacturerSegment"));
elemField.setXmlType(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "DeviceManufacturerTargeting"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("mobileDeviceSegment");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "mobileDeviceSegment"));
elemField.setXmlType(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "MobileDeviceTargeting"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("mobileDeviceSubmodelSegment");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "mobileDeviceSubmodelSegment"));
elemField.setXmlType(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "MobileDeviceSubmodelTargeting"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("videoPositionSegment");
elemField.setXmlName(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "videoPositionSegment"));
elemField.setXmlType(new javax.xml.namespace.QName("https://www.google.com/apis/ads/publisher/v201702", "VideoPositionTargeting"));
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);
}
}