// 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. package com.google.api.ads.dfp.jaxws.v201608; import java.util.ArrayList; import java.util.List; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlSchemaType; import javax.xml.bind.annotation.XmlType; /** * * {@link ProposalLineItem Proposal line items} are created from products, * from which their properties are copied. * * * <p>Java class for Product complex type. * * <p>The following schema fragment specifies the expected content contained within this class. * * <pre> * <complexType name="Product"> * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> * <element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> * <element name="nameSource" type="{https://www.google.com/apis/ads/publisher/v201608}ValueSourceType" minOccurs="0"/> * <element name="status" type="{https://www.google.com/apis/ads/publisher/v201608}ProductStatus" minOccurs="0"/> * <element name="productType" type="{https://www.google.com/apis/ads/publisher/v201608}ProductType" minOccurs="0"/> * <element name="productTemplateId" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/> * <element name="id" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/> * <element name="notes" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> * <element name="productTemplateDescription" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> * <element name="lastModifiedDateTime" type="{https://www.google.com/apis/ads/publisher/v201608}DateTime" minOccurs="0"/> * <element name="rateType" type="{https://www.google.com/apis/ads/publisher/v201608}RateType" minOccurs="0"/> * <element name="roadblockingType" type="{https://www.google.com/apis/ads/publisher/v201608}RoadblockingType" minOccurs="0"/> * <element name="deliveryRateType" type="{https://www.google.com/apis/ads/publisher/v201608}DeliveryRateType" minOccurs="0"/> * <element name="creativeRotationType" type="{https://www.google.com/apis/ads/publisher/v201608}CreativeRotationType" minOccurs="0"/> * <element name="companionDeliveryOption" type="{https://www.google.com/apis/ads/publisher/v201608}CompanionDeliveryOption" minOccurs="0"/> * <element name="creativePlaceholders" type="{https://www.google.com/apis/ads/publisher/v201608}CreativePlaceholder" maxOccurs="unbounded" minOccurs="0"/> * <element name="lineItemType" type="{https://www.google.com/apis/ads/publisher/v201608}LineItemType" minOccurs="0"/> * <element name="priority" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/> * <element name="frequencyCaps" type="{https://www.google.com/apis/ads/publisher/v201608}FrequencyCap" maxOccurs="unbounded" minOccurs="0"/> * <element name="builtInTargeting" type="{https://www.google.com/apis/ads/publisher/v201608}Targeting" minOccurs="0"/> * <element name="customizableAttributes" type="{https://www.google.com/apis/ads/publisher/v201608}CustomizableAttributes" minOccurs="0"/> * <element name="customFieldValues" type="{https://www.google.com/apis/ads/publisher/v201608}BaseCustomFieldValue" maxOccurs="unbounded" minOccurs="0"/> * <element name="environmentType" type="{https://www.google.com/apis/ads/publisher/v201608}EnvironmentType" minOccurs="0"/> * <element name="rate" type="{https://www.google.com/apis/ads/publisher/v201608}Money" minOccurs="0"/> * <element name="productMarketplaceInfo" type="{https://www.google.com/apis/ads/publisher/v201608}ProductMarketplaceInfo" minOccurs="0"/> * <element name="videoMaxDuration" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/> * </sequence> * </restriction> * </complexContent> * </complexType> * </pre> * * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "Product", propOrder = { "name", "nameSource", "status", "productType", "productTemplateId", "id", "notes", "productTemplateDescription", "lastModifiedDateTime", "rateType", "roadblockingType", "deliveryRateType", "creativeRotationType", "companionDeliveryOption", "creativePlaceholders", "lineItemType", "priority", "frequencyCaps", "builtInTargeting", "customizableAttributes", "customFieldValues", "environmentType", "rate", "productMarketplaceInfo", "videoMaxDuration" }) public class Product { protected String name; @XmlSchemaType(name = "string") protected ValueSourceType nameSource; @XmlSchemaType(name = "string") protected ProductStatus status; @XmlSchemaType(name = "string") protected ProductType productType; protected Long productTemplateId; protected Long id; protected String notes; protected String productTemplateDescription; protected DateTime lastModifiedDateTime; @XmlSchemaType(name = "string") protected RateType rateType; @XmlSchemaType(name = "string") protected RoadblockingType roadblockingType; @XmlSchemaType(name = "string") protected DeliveryRateType deliveryRateType; @XmlSchemaType(name = "string") protected CreativeRotationType creativeRotationType; @XmlSchemaType(name = "string") protected CompanionDeliveryOption companionDeliveryOption; protected List<CreativePlaceholder> creativePlaceholders; @XmlSchemaType(name = "string") protected LineItemType lineItemType; protected Integer priority; protected List<FrequencyCap> frequencyCaps; protected Targeting builtInTargeting; protected CustomizableAttributes customizableAttributes; protected List<BaseCustomFieldValue> customFieldValues; @XmlSchemaType(name = "string") protected EnvironmentType environmentType; protected Money rate; protected ProductMarketplaceInfo productMarketplaceInfo; protected Long videoMaxDuration; /** * Gets the value of the name property. * * @return * possible object is * {@link String } * */ public String getName() { return name; } /** * Sets the value of the name property. * * @param value * allowed object is * {@link String } * */ public void setName(String value) { this.name = value; } /** * Gets the value of the nameSource property. * * @return * possible object is * {@link ValueSourceType } * */ public ValueSourceType getNameSource() { return nameSource; } /** * Sets the value of the nameSource property. * * @param value * allowed object is * {@link ValueSourceType } * */ public void setNameSource(ValueSourceType value) { this.nameSource = value; } /** * Gets the value of the status property. * * @return * possible object is * {@link ProductStatus } * */ public ProductStatus getStatus() { return status; } /** * Sets the value of the status property. * * @param value * allowed object is * {@link ProductStatus } * */ public void setStatus(ProductStatus value) { this.status = value; } /** * Gets the value of the productType property. * * @return * possible object is * {@link ProductType } * */ public ProductType getProductType() { return productType; } /** * Sets the value of the productType property. * * @param value * allowed object is * {@link ProductType } * */ public void setProductType(ProductType value) { this.productType = value; } /** * Gets the value of the productTemplateId property. * * @return * possible object is * {@link Long } * */ public Long getProductTemplateId() { return productTemplateId; } /** * Sets the value of the productTemplateId property. * * @param value * allowed object is * {@link Long } * */ public void setProductTemplateId(Long value) { this.productTemplateId = value; } /** * Gets the value of the id property. * * @return * possible object is * {@link Long } * */ public Long getId() { return id; } /** * Sets the value of the id property. * * @param value * allowed object is * {@link Long } * */ public void setId(Long value) { this.id = value; } /** * Gets the value of the notes property. * * @return * possible object is * {@link String } * */ public String getNotes() { return notes; } /** * Sets the value of the notes property. * * @param value * allowed object is * {@link String } * */ public void setNotes(String value) { this.notes = value; } /** * Gets the value of the productTemplateDescription property. * * @return * possible object is * {@link String } * */ public String getProductTemplateDescription() { return productTemplateDescription; } /** * Sets the value of the productTemplateDescription property. * * @param value * allowed object is * {@link String } * */ public void setProductTemplateDescription(String value) { this.productTemplateDescription = value; } /** * Gets the value of the lastModifiedDateTime property. * * @return * possible object is * {@link DateTime } * */ public DateTime getLastModifiedDateTime() { return lastModifiedDateTime; } /** * Sets the value of the lastModifiedDateTime property. * * @param value * allowed object is * {@link DateTime } * */ public void setLastModifiedDateTime(DateTime value) { this.lastModifiedDateTime = value; } /** * Gets the value of the rateType property. * * @return * possible object is * {@link RateType } * */ public RateType getRateType() { return rateType; } /** * Sets the value of the rateType property. * * @param value * allowed object is * {@link RateType } * */ public void setRateType(RateType value) { this.rateType = value; } /** * Gets the value of the roadblockingType property. * * @return * possible object is * {@link RoadblockingType } * */ public RoadblockingType getRoadblockingType() { return roadblockingType; } /** * Sets the value of the roadblockingType property. * * @param value * allowed object is * {@link RoadblockingType } * */ public void setRoadblockingType(RoadblockingType value) { this.roadblockingType = value; } /** * Gets the value of the deliveryRateType property. * * @return * possible object is * {@link DeliveryRateType } * */ public DeliveryRateType getDeliveryRateType() { return deliveryRateType; } /** * Sets the value of the deliveryRateType property. * * @param value * allowed object is * {@link DeliveryRateType } * */ public void setDeliveryRateType(DeliveryRateType value) { this.deliveryRateType = value; } /** * Gets the value of the creativeRotationType property. * * @return * possible object is * {@link CreativeRotationType } * */ public CreativeRotationType getCreativeRotationType() { return creativeRotationType; } /** * Sets the value of the creativeRotationType property. * * @param value * allowed object is * {@link CreativeRotationType } * */ public void setCreativeRotationType(CreativeRotationType value) { this.creativeRotationType = value; } /** * Gets the value of the companionDeliveryOption property. * * @return * possible object is * {@link CompanionDeliveryOption } * */ public CompanionDeliveryOption getCompanionDeliveryOption() { return companionDeliveryOption; } /** * Sets the value of the companionDeliveryOption property. * * @param value * allowed object is * {@link CompanionDeliveryOption } * */ public void setCompanionDeliveryOption(CompanionDeliveryOption value) { this.companionDeliveryOption = value; } /** * Gets the value of the creativePlaceholders property. * * <p> * This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. * This is why there is not a <CODE>set</CODE> method for the creativePlaceholders property. * * <p> * For example, to add a new item, do as follows: * <pre> * getCreativePlaceholders().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link CreativePlaceholder } * * */ public List<CreativePlaceholder> getCreativePlaceholders() { if (creativePlaceholders == null) { creativePlaceholders = new ArrayList<CreativePlaceholder>(); } return this.creativePlaceholders; } /** * Gets the value of the lineItemType property. * * @return * possible object is * {@link LineItemType } * */ public LineItemType getLineItemType() { return lineItemType; } /** * Sets the value of the lineItemType property. * * @param value * allowed object is * {@link LineItemType } * */ public void setLineItemType(LineItemType value) { this.lineItemType = value; } /** * Gets the value of the priority property. * * @return * possible object is * {@link Integer } * */ public Integer getPriority() { return priority; } /** * Sets the value of the priority property. * * @param value * allowed object is * {@link Integer } * */ public void setPriority(Integer value) { this.priority = value; } /** * Gets the value of the frequencyCaps property. * * <p> * This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. * This is why there is not a <CODE>set</CODE> method for the frequencyCaps property. * * <p> * For example, to add a new item, do as follows: * <pre> * getFrequencyCaps().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link FrequencyCap } * * */ public List<FrequencyCap> getFrequencyCaps() { if (frequencyCaps == null) { frequencyCaps = new ArrayList<FrequencyCap>(); } return this.frequencyCaps; } /** * Gets the value of the builtInTargeting property. * * @return * possible object is * {@link Targeting } * */ public Targeting getBuiltInTargeting() { return builtInTargeting; } /** * Sets the value of the builtInTargeting property. * * @param value * allowed object is * {@link Targeting } * */ public void setBuiltInTargeting(Targeting value) { this.builtInTargeting = value; } /** * Gets the value of the customizableAttributes property. * * @return * possible object is * {@link CustomizableAttributes } * */ public CustomizableAttributes getCustomizableAttributes() { return customizableAttributes; } /** * Sets the value of the customizableAttributes property. * * @param value * allowed object is * {@link CustomizableAttributes } * */ public void setCustomizableAttributes(CustomizableAttributes value) { this.customizableAttributes = value; } /** * Gets the value of the customFieldValues property. * * <p> * This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. * This is why there is not a <CODE>set</CODE> method for the customFieldValues property. * * <p> * For example, to add a new item, do as follows: * <pre> * getCustomFieldValues().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link BaseCustomFieldValue } * * */ public List<BaseCustomFieldValue> getCustomFieldValues() { if (customFieldValues == null) { customFieldValues = new ArrayList<BaseCustomFieldValue>(); } return this.customFieldValues; } /** * Gets the value of the environmentType property. * * @return * possible object is * {@link EnvironmentType } * */ public EnvironmentType getEnvironmentType() { return environmentType; } /** * Sets the value of the environmentType property. * * @param value * allowed object is * {@link EnvironmentType } * */ public void setEnvironmentType(EnvironmentType value) { this.environmentType = value; } /** * Gets the value of the rate property. * * @return * possible object is * {@link Money } * */ public Money getRate() { return rate; } /** * Sets the value of the rate property. * * @param value * allowed object is * {@link Money } * */ public void setRate(Money value) { this.rate = value; } /** * Gets the value of the productMarketplaceInfo property. * * @return * possible object is * {@link ProductMarketplaceInfo } * */ public ProductMarketplaceInfo getProductMarketplaceInfo() { return productMarketplaceInfo; } /** * Sets the value of the productMarketplaceInfo property. * * @param value * allowed object is * {@link ProductMarketplaceInfo } * */ public void setProductMarketplaceInfo(ProductMarketplaceInfo value) { this.productMarketplaceInfo = value; } /** * Gets the value of the videoMaxDuration property. * * @return * possible object is * {@link Long } * */ public Long getVideoMaxDuration() { return videoMaxDuration; } /** * Sets the value of the videoMaxDuration property. * * @param value * allowed object is * {@link Long } * */ public void setVideoMaxDuration(Long value) { this.videoMaxDuration = value; } }