
package com.bcxin.ins.third.zzx.yongan.vo;

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.XmlElement;
import javax.xml.bind.annotation.XmlType;


/**
 * <p>appInfo complex type�� Java �ࡣ
 * 
 * <p>����ģʽƬ��ָ�������ڴ����е�Ԥ�����ݡ�
 * 
 * <pre>
 * &lt;complexType name="appInfo">
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;sequence>
 *         &lt;element name="appBaseInfo" type="{http://service.webservice.yaic.com/}appBaseInfo" minOccurs="0"/>
 *         &lt;element name="cbnfcInfos" type="{http://service.webservice.yaic.com/}cbnfcInfo" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element name="extraInfo" type="{http://service.webservice.yaic.com/}extraInfo" minOccurs="0"/>
 *         &lt;element name="insuredInfos" type="{http://service.webservice.yaic.com/}insuredInfo" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element name="payInfo" type="{http://service.webservice.yaic.com/}payInfo" minOccurs="0"/>
 *         &lt;element name="payerInfo" type="{http://service.webservice.yaic.com/}payerInfo" minOccurs="0"/>
 *         &lt;element name="propertyInfos" type="{http://service.webservice.yaic.com/}propertyInfo" maxOccurs="unbounded" minOccurs="0"/>
 *       &lt;/sequence>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "appInfo", propOrder = {
    "appBaseInfo",
    "cbnfcInfos",
    "extraInfo",
    "insuredInfos",
    "payInfo",
    "payerInfo",
    "propertyInfos"
})
public class AppInfo {

    protected AppBaseInfo appBaseInfo;
    @XmlElement(nillable = true)
    protected List<CbnfcInfo> cbnfcInfos;
    protected ExtraInfo extraInfo;
    @XmlElement(nillable = true)
    protected List<InsuredInfo> insuredInfos;
    protected PayInfo payInfo;
    protected PayerInfo payerInfo;
    @XmlElement(nillable = true)
    protected List<PropertyInfo> propertyInfos;

    /**
     * ��ȡappBaseInfo���Ե�ֵ��
     * 
     * @return
     *     possible object is
     *     {@link AppBaseInfo }
     *     
     */
    public AppBaseInfo getAppBaseInfo() {
        return appBaseInfo;
    }

    /**
     * ����appBaseInfo���Ե�ֵ��
     * 
     * @param value
     *     allowed object is
     *     {@link AppBaseInfo }
     *     
     */
    public void setAppBaseInfo(AppBaseInfo value) {
        this.appBaseInfo = value;
    }

    /**
     * Gets the value of the cbnfcInfos 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 cbnfcInfos property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getCbnfcInfos().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link CbnfcInfo }
     * 
     * 
     */
    public List<CbnfcInfo> getCbnfcInfos() {
        if (cbnfcInfos == null) {
            cbnfcInfos = new ArrayList<CbnfcInfo>();
        }
        return this.cbnfcInfos;
    }

    /**
     * ��ȡextraInfo���Ե�ֵ��
     * 
     * @return
     *     possible object is
     *     {@link ExtraInfo }
     *     
     */
    public ExtraInfo getExtraInfo() {
        return extraInfo;
    }

    /**
     * ����extraInfo���Ե�ֵ��
     * 
     * @param value
     *     allowed object is
     *     {@link ExtraInfo }
     *     
     */
    public void setExtraInfo(ExtraInfo value) {
        this.extraInfo = value;
    }

    /**
     * Gets the value of the insuredInfos 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 insuredInfos property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getInsuredInfos().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link InsuredInfo }
     * 
     * 
     */
    public List<InsuredInfo> getInsuredInfos() {
        if (insuredInfos == null) {
            insuredInfos = new ArrayList<InsuredInfo>();
        }
        return this.insuredInfos;
    }

    /**
     * ��ȡpayInfo���Ե�ֵ��
     * 
     * @return
     *     possible object is
     *     {@link PayInfo }
     *     
     */
    public PayInfo getPayInfo() {
        return payInfo;
    }

    /**
     * ����payInfo���Ե�ֵ��
     * 
     * @param value
     *     allowed object is
     *     {@link PayInfo }
     *     
     */
    public void setPayInfo(PayInfo value) {
        this.payInfo = value;
    }

    /**
     * ��ȡpayerInfo���Ե�ֵ��
     * 
     * @return
     *     possible object is
     *     {@link PayerInfo }
     *     
     */
    public PayerInfo getPayerInfo() {
        return payerInfo;
    }

    /**
     * ����payerInfo���Ե�ֵ��
     * 
     * @param value
     *     allowed object is
     *     {@link PayerInfo }
     *     
     */
    public void setPayerInfo(PayerInfo value) {
        this.payerInfo = value;
    }

    public void setInsuredInfos(List<InsuredInfo> insuredInfos) {
        this.insuredInfos = insuredInfos;
    }

    public void setPropertyInfos(List<PropertyInfo> propertyInfos) {
        this.propertyInfos = propertyInfos;
    }

    /**
     * Gets the value of the propertyInfos 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 propertyInfos property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPropertyInfos().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link PropertyInfo }
     * 
     * 
     */
    public List<PropertyInfo> getPropertyInfos() {
        if (propertyInfos == null) {
            propertyInfos = new ArrayList<PropertyInfo>();
        }
        return this.propertyInfos;
    }

}
