/**
 * SemanticContentResult.java
 *
 * This file was auto-generated from WSDL
 * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
 */

package uk.ac.open.kmi.watson.clientapi;

public class SemanticContentResult  implements java.io.Serializable {
    private java.lang.String DLExpressivness;

    private int NBClasses;

    private int NBIndividuals;

    private int NBProperties;

    private java.lang.String URI;

    private java.lang.String[] comments;

    private uk.ac.open.kmi.watson.clientapi.EntityResult[] entityResultList;

    private java.lang.String[] importedBy;

    private java.lang.String[] imports;

    private java.lang.String[] labels;

    private java.lang.String[] languages;

    private java.lang.String[] locations;

    private int nbStatements;

    private int numberOfStatements;

    private long size;

    public SemanticContentResult() {
    }

    public SemanticContentResult(
           java.lang.String DLExpressivness,
           int NBClasses,
           int NBIndividuals,
           int NBProperties,
           java.lang.String URI,
           java.lang.String[] comments,
           uk.ac.open.kmi.watson.clientapi.EntityResult[] entityResultList,
           java.lang.String[] importedBy,
           java.lang.String[] imports,
           java.lang.String[] labels,
           java.lang.String[] languages,
           java.lang.String[] locations,
           int nbStatements,
           int numberOfStatements,
           long size) {
           this.DLExpressivness = DLExpressivness;
           this.NBClasses = NBClasses;
           this.NBIndividuals = NBIndividuals;
           this.NBProperties = NBProperties;
           this.URI = URI;
           this.comments = comments;
           this.entityResultList = entityResultList;
           this.importedBy = importedBy;
           this.imports = imports;
           this.labels = labels;
           this.languages = languages;
           this.locations = locations;
           this.nbStatements = nbStatements;
           this.numberOfStatements = numberOfStatements;
           this.size = size;
    }


    /**
     * Gets the DLExpressivness value for this SemanticContentResult.
     * 
     * @return DLExpressivness
     */
    public java.lang.String getDLExpressivness() {
        return DLExpressivness;
    }


    /**
     * Sets the DLExpressivness value for this SemanticContentResult.
     * 
     * @param DLExpressivness
     */
    public void setDLExpressivness(java.lang.String DLExpressivness) {
        this.DLExpressivness = DLExpressivness;
    }


    /**
     * Gets the NBClasses value for this SemanticContentResult.
     * 
     * @return NBClasses
     */
    public int getNBClasses() {
        return NBClasses;
    }


    /**
     * Sets the NBClasses value for this SemanticContentResult.
     * 
     * @param NBClasses
     */
    public void setNBClasses(int NBClasses) {
        this.NBClasses = NBClasses;
    }


    /**
     * Gets the NBIndividuals value for this SemanticContentResult.
     * 
     * @return NBIndividuals
     */
    public int getNBIndividuals() {
        return NBIndividuals;
    }


    /**
     * Sets the NBIndividuals value for this SemanticContentResult.
     * 
     * @param NBIndividuals
     */
    public void setNBIndividuals(int NBIndividuals) {
        this.NBIndividuals = NBIndividuals;
    }


    /**
     * Gets the NBProperties value for this SemanticContentResult.
     * 
     * @return NBProperties
     */
    public int getNBProperties() {
        return NBProperties;
    }


    /**
     * Sets the NBProperties value for this SemanticContentResult.
     * 
     * @param NBProperties
     */
    public void setNBProperties(int NBProperties) {
        this.NBProperties = NBProperties;
    }


    /**
     * Gets the URI value for this SemanticContentResult.
     * 
     * @return URI
     */
    public java.lang.String getURI() {
        return URI;
    }


    /**
     * Sets the URI value for this SemanticContentResult.
     * 
     * @param URI
     */
    public void setURI(java.lang.String URI) {
        this.URI = URI;
    }


    /**
     * Gets the comments value for this SemanticContentResult.
     * 
     * @return comments
     */
    public java.lang.String[] getComments() {
        return comments;
    }


    /**
     * Sets the comments value for this SemanticContentResult.
     * 
     * @param comments
     */
    public void setComments(java.lang.String[] comments) {
        this.comments = comments;
    }


    /**
     * Gets the entityResultList value for this SemanticContentResult.
     * 
     * @return entityResultList
     */
    public uk.ac.open.kmi.watson.clientapi.EntityResult[] getEntityResultList() {
        return entityResultList;
    }


    /**
     * Sets the entityResultList value for this SemanticContentResult.
     * 
     * @param entityResultList
     */
    public void setEntityResultList(uk.ac.open.kmi.watson.clientapi.EntityResult[] entityResultList) {
        this.entityResultList = entityResultList;
    }


    /**
     * Gets the importedBy value for this SemanticContentResult.
     * 
     * @return importedBy
     */
    public java.lang.String[] getImportedBy() {
        return importedBy;
    }


    /**
     * Sets the importedBy value for this SemanticContentResult.
     * 
     * @param importedBy
     */
    public void setImportedBy(java.lang.String[] importedBy) {
        this.importedBy = importedBy;
    }


    /**
     * Gets the imports value for this SemanticContentResult.
     * 
     * @return imports
     */
    public java.lang.String[] getImports() {
        return imports;
    }


    /**
     * Sets the imports value for this SemanticContentResult.
     * 
     * @param imports
     */
    public void setImports(java.lang.String[] imports) {
        this.imports = imports;
    }


    /**
     * Gets the labels value for this SemanticContentResult.
     * 
     * @return labels
     */
    public java.lang.String[] getLabels() {
        return labels;
    }


    /**
     * Sets the labels value for this SemanticContentResult.
     * 
     * @param labels
     */
    public void setLabels(java.lang.String[] labels) {
        this.labels = labels;
    }


    /**
     * Gets the languages value for this SemanticContentResult.
     * 
     * @return languages
     */
    public java.lang.String[] getLanguages() {
        return languages;
    }


    /**
     * Sets the languages value for this SemanticContentResult.
     * 
     * @param languages
     */
    public void setLanguages(java.lang.String[] languages) {
        this.languages = languages;
    }


    /**
     * Gets the locations value for this SemanticContentResult.
     * 
     * @return locations
     */
    public java.lang.String[] getLocations() {
        return locations;
    }


    /**
     * Sets the locations value for this SemanticContentResult.
     * 
     * @param locations
     */
    public void setLocations(java.lang.String[] locations) {
        this.locations = locations;
    }


    /**
     * Gets the nbStatements value for this SemanticContentResult.
     * 
     * @return nbStatements
     */
    public int getNbStatements() {
        return nbStatements;
    }


    /**
     * Sets the nbStatements value for this SemanticContentResult.
     * 
     * @param nbStatements
     */
    public void setNbStatements(int nbStatements) {
        this.nbStatements = nbStatements;
    }


    /**
     * Gets the numberOfStatements value for this SemanticContentResult.
     * 
     * @return numberOfStatements
     */
    public int getNumberOfStatements() {
        return numberOfStatements;
    }


    /**
     * Sets the numberOfStatements value for this SemanticContentResult.
     * 
     * @param numberOfStatements
     */
    public void setNumberOfStatements(int numberOfStatements) {
        this.numberOfStatements = numberOfStatements;
    }


    /**
     * Gets the size value for this SemanticContentResult.
     * 
     * @return size
     */
    public long getSize() {
        return size;
    }


    /**
     * Sets the size value for this SemanticContentResult.
     * 
     * @param size
     */
    public void setSize(long size) {
        this.size = size;
    }

    private java.lang.Object __equalsCalc = null;
    public synchronized boolean equals(java.lang.Object obj) {
        if (!(obj instanceof SemanticContentResult)) return false;
        SemanticContentResult other = (SemanticContentResult) obj;
        if (obj == null) return false;
        if (this == obj) return true;
        if (__equalsCalc != null) {
            return (__equalsCalc == obj);
        }
        __equalsCalc = obj;
        boolean _equals;
        _equals = true && 
            ((this.DLExpressivness==null && other.getDLExpressivness()==null) || 
             (this.DLExpressivness!=null &&
              this.DLExpressivness.equals(other.getDLExpressivness()))) &&
            this.NBClasses == other.getNBClasses() &&
            this.NBIndividuals == other.getNBIndividuals() &&
            this.NBProperties == other.getNBProperties() &&
            ((this.URI==null && other.getURI()==null) || 
             (this.URI!=null &&
              this.URI.equals(other.getURI()))) &&
            ((this.comments==null && other.getComments()==null) || 
             (this.comments!=null &&
              java.util.Arrays.equals(this.comments, other.getComments()))) &&
            ((this.entityResultList==null && other.getEntityResultList()==null) || 
             (this.entityResultList!=null &&
              java.util.Arrays.equals(this.entityResultList, other.getEntityResultList()))) &&
            ((this.importedBy==null && other.getImportedBy()==null) || 
             (this.importedBy!=null &&
              java.util.Arrays.equals(this.importedBy, other.getImportedBy()))) &&
            ((this.imports==null && other.getImports()==null) || 
             (this.imports!=null &&
              java.util.Arrays.equals(this.imports, other.getImports()))) &&
            ((this.labels==null && other.getLabels()==null) || 
             (this.labels!=null &&
              java.util.Arrays.equals(this.labels, other.getLabels()))) &&
            ((this.languages==null && other.getLanguages()==null) || 
             (this.languages!=null &&
              java.util.Arrays.equals(this.languages, other.getLanguages()))) &&
            ((this.locations==null && other.getLocations()==null) || 
             (this.locations!=null &&
              java.util.Arrays.equals(this.locations, other.getLocations()))) &&
            this.nbStatements == other.getNbStatements() &&
            this.numberOfStatements == other.getNumberOfStatements() &&
            this.size == other.getSize();
        __equalsCalc = null;
        return _equals;
    }

    private boolean __hashCodeCalc = false;
    public synchronized int hashCode() {
        if (__hashCodeCalc) {
            return 0;
        }
        __hashCodeCalc = true;
        int _hashCode = 1;
        if (getDLExpressivness() != null) {
            _hashCode += getDLExpressivness().hashCode();
        }
        _hashCode += getNBClasses();
        _hashCode += getNBIndividuals();
        _hashCode += getNBProperties();
        if (getURI() != null) {
            _hashCode += getURI().hashCode();
        }
        if (getComments() != null) {
            for (int i=0;
                 i<java.lang.reflect.Array.getLength(getComments());
                 i++) {
                java.lang.Object obj = java.lang.reflect.Array.get(getComments(), i);
                if (obj != null &&
                    !obj.getClass().isArray()) {
                    _hashCode += obj.hashCode();
                }
            }
        }
        if (getEntityResultList() != null) {
            for (int i=0;
                 i<java.lang.reflect.Array.getLength(getEntityResultList());
                 i++) {
                java.lang.Object obj = java.lang.reflect.Array.get(getEntityResultList(), i);
                if (obj != null &&
                    !obj.getClass().isArray()) {
                    _hashCode += obj.hashCode();
                }
            }
        }
        if (getImportedBy() != null) {
            for (int i=0;
                 i<java.lang.reflect.Array.getLength(getImportedBy());
                 i++) {
                java.lang.Object obj = java.lang.reflect.Array.get(getImportedBy(), i);
                if (obj != null &&
                    !obj.getClass().isArray()) {
                    _hashCode += obj.hashCode();
                }
            }
        }
        if (getImports() != null) {
            for (int i=0;
                 i<java.lang.reflect.Array.getLength(getImports());
                 i++) {
                java.lang.Object obj = java.lang.reflect.Array.get(getImports(), i);
                if (obj != null &&
                    !obj.getClass().isArray()) {
                    _hashCode += obj.hashCode();
                }
            }
        }
        if (getLabels() != null) {
            for (int i=0;
                 i<java.lang.reflect.Array.getLength(getLabels());
                 i++) {
                java.lang.Object obj = java.lang.reflect.Array.get(getLabels(), i);
                if (obj != null &&
                    !obj.getClass().isArray()) {
                    _hashCode += obj.hashCode();
                }
            }
        }
        if (getLanguages() != null) {
            for (int i=0;
                 i<java.lang.reflect.Array.getLength(getLanguages());
                 i++) {
                java.lang.Object obj = java.lang.reflect.Array.get(getLanguages(), i);
                if (obj != null &&
                    !obj.getClass().isArray()) {
                    _hashCode += obj.hashCode();
                }
            }
        }
        if (getLocations() != null) {
            for (int i=0;
                 i<java.lang.reflect.Array.getLength(getLocations());
                 i++) {
                java.lang.Object obj = java.lang.reflect.Array.get(getLocations(), i);
                if (obj != null &&
                    !obj.getClass().isArray()) {
                    _hashCode += obj.hashCode();
                }
            }
        }
        _hashCode += getNbStatements();
        _hashCode += getNumberOfStatements();
        _hashCode += new Long(getSize()).hashCode();
        __hashCodeCalc = false;
        return _hashCode;
    }

    // Type metadata
    private static org.apache.axis.description.TypeDesc typeDesc =
        new org.apache.axis.description.TypeDesc(SemanticContentResult.class, true);

    static {
        typeDesc.setXmlType(new javax.xml.namespace.QName("urn:WatsonSearch", "SemanticContentResult"));
        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("DLExpressivness");
        elemField.setXmlName(new javax.xml.namespace.QName("", "DLExpressivness"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
        elemField.setNillable(true);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("NBClasses");
        elemField.setXmlName(new javax.xml.namespace.QName("", "NBClasses"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("NBIndividuals");
        elemField.setXmlName(new javax.xml.namespace.QName("", "NBIndividuals"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("NBProperties");
        elemField.setXmlName(new javax.xml.namespace.QName("", "NBProperties"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("URI");
        elemField.setXmlName(new javax.xml.namespace.QName("", "URI"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
        elemField.setNillable(true);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("comments");
        elemField.setXmlName(new javax.xml.namespace.QName("", "comments"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
        elemField.setNillable(true);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("entityResultList");
        elemField.setXmlName(new javax.xml.namespace.QName("", "entityResultList"));
        elemField.setXmlType(new javax.xml.namespace.QName("urn:WatsonSearch", "EntityResult"));
        elemField.setNillable(true);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("importedBy");
        elemField.setXmlName(new javax.xml.namespace.QName("", "importedBy"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
        elemField.setNillable(true);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("imports");
        elemField.setXmlName(new javax.xml.namespace.QName("", "imports"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
        elemField.setNillable(true);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("labels");
        elemField.setXmlName(new javax.xml.namespace.QName("", "labels"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
        elemField.setNillable(true);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("languages");
        elemField.setXmlName(new javax.xml.namespace.QName("", "languages"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
        elemField.setNillable(true);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("locations");
        elemField.setXmlName(new javax.xml.namespace.QName("", "locations"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
        elemField.setNillable(true);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("nbStatements");
        elemField.setXmlName(new javax.xml.namespace.QName("", "nbStatements"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("numberOfStatements");
        elemField.setXmlName(new javax.xml.namespace.QName("", "numberOfStatements"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
        elemField.setNillable(false);
        typeDesc.addFieldDesc(elemField);
        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("size");
        elemField.setXmlName(new javax.xml.namespace.QName("", "size"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"));
        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);
    }

}
