/*
* Copyright (c) 2016, Metron, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of Metron, Inc. nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL METRON, INC. BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.3-hudson-jaxb-ri-2.2.3-3-
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2011.12.05 at 11:09:09 AM EST
//
package com.metsci.glimpse.dspl.schema;
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.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlID;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import javax.xml.namespace.QName;
/**
*
* A concept is a definition of a type of data that appears in the
* dataset (e.g., "GDP" or "County"). A concept may be associated with
* an enumeration of all its possible values or not. A concept defined in
* some dataset may be referenced in other datasets.
*
*
* <p>Java class for Concept complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* <complexType name="Concept">
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <sequence>
* <element name="info" type="{http://schemas.google.com/dspl/2010}ConceptInfo"/>
* <element name="topic" maxOccurs="unbounded" minOccurs="0">
* <complexType>
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <attribute name="ref" type="{http://www.w3.org/2001/XMLSchema}QName" />
* </restriction>
* </complexContent>
* </complexType>
* </element>
* <element name="type" minOccurs="0">
* <complexType>
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <attribute name="ref" use="required" type="{http://schemas.google.com/dspl/2010}DataType" />
* </restriction>
* </complexContent>
* </complexType>
* </element>
* <element name="attribute" type="{http://schemas.google.com/dspl/2010}Attribute" maxOccurs="unbounded" minOccurs="0"/>
* <element name="property" type="{http://schemas.google.com/dspl/2010}ConceptProperty" maxOccurs="unbounded" minOccurs="0"/>
* <element name="defaultValue" type="{http://schemas.google.com/dspl/2010}Value" minOccurs="0"/>
* <choice>
* <element name="table" type="{http://schemas.google.com/dspl/2010}ConceptTableMapping" minOccurs="0"/>
* <element name="data" minOccurs="0">
* <complexType>
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <sequence>
* <element name="table" type="{http://schemas.google.com/dspl/2010}ConceptTableMapping"/>
* </sequence>
* </restriction>
* </complexContent>
* </complexType>
* </element>
* </choice>
* </sequence>
* <attribute name="id" use="required" type="{http://schemas.google.com/dspl/2010}Id" />
* <attribute name="extends" type="{http://www.w3.org/2001/XMLSchema}QName" />
* </restriction>
* </complexContent>
* </complexType>
* </pre>
*
*
*/
@XmlAccessorType( XmlAccessType.FIELD )
@XmlType( name = "Concept", propOrder = { "info", "topic", "type", "attribute", "property", "defaultValue", "tableMapping", "data" } )
public class Concept
{
@XmlElement( required = true )
protected ConceptInfo info;
protected List<Concept.Topic> topic;
protected Concept.Type type;
protected List<Attribute> attribute;
protected List<ConceptProperty> property;
protected Value defaultValue;
@XmlElement( name = "table" )
protected ConceptTableMapping tableMapping;
protected Concept.Data data;
@XmlAttribute( name = "id", required = true )
@XmlJavaTypeAdapter( CollapsedStringAdapter.class )
@XmlID
protected String id;
@XmlAttribute( name = "extends" )
protected QName _extends;
/**
* Gets the value of the info property.
*
* @return
* possible object is
* {@link ConceptInfo }
*
*/
public ConceptInfo getInfo( )
{
return info;
}
/**
* Sets the value of the info property.
*
* @param value
* allowed object is
* {@link ConceptInfo }
*
*/
public void setInfo( ConceptInfo value )
{
this.info = value;
}
/**
* Gets the value of the topic 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 topic property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getTopic().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link Concept.Topic }
*
*
*/
public List<Concept.Topic> getTopic( )
{
if ( topic == null )
{
topic = new ArrayList<Concept.Topic>( );
}
return this.topic;
}
/**
* Gets the value of the type property.
*
* @return
* possible object is
* {@link Concept.Type }
*
*/
public Concept.Type getType( )
{
return type;
}
/**
* Sets the value of the type property.
*
* @param value
* allowed object is
* {@link Concept.Type }
*
*/
public void setType( Concept.Type value )
{
this.type = value;
}
/**
* Gets the value of the attribute 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 attribute property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getAttribute().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link Attribute }
*
*
*/
public List<Attribute> getAttribute( )
{
if ( attribute == null )
{
attribute = new ArrayList<Attribute>( );
}
return this.attribute;
}
/**
* Gets the value of the property 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 property property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getProperty().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link ConceptProperty }
*
*
*/
public List<ConceptProperty> getProperty( )
{
if ( property == null )
{
property = new ArrayList<ConceptProperty>( );
}
return this.property;
}
/**
* Gets the value of the defaultValue property.
*
* @return
* possible object is
* {@link Value }
*
*/
public Value getDefaultValue( )
{
return defaultValue;
}
/**
* Sets the value of the defaultValue property.
*
* @param value
* allowed object is
* {@link Value }
*
*/
public void setDefaultValue( Value value )
{
this.defaultValue = value;
}
/**
* Gets the value of the tableMapping property.
*
* @return
* possible object is
* {@link ConceptTableMapping }
*
*/
public ConceptTableMapping getTableMapping( )
{
return tableMapping;
}
/**
* Sets the value of the tableMapping property.
*
* @param value
* allowed object is
* {@link ConceptTableMapping }
*
*/
public void setTableMapping( ConceptTableMapping value )
{
this.tableMapping = value;
}
/**
* Gets the value of the data property.
*
* @return
* possible object is
* {@link Concept.Data }
*
*/
public Concept.Data getData( )
{
return data;
}
/**
* Sets the value of the data property.
*
* @param value
* allowed object is
* {@link Concept.Data }
*
*/
public void setData( Concept.Data value )
{
this.data = value;
}
/**
* Gets the value of the id property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getId( )
{
return id;
}
/**
* Sets the value of the id property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setId( String value )
{
this.id = value;
}
/**
* Gets the value of the extends property.
*
* @return
* possible object is
* {@link QName }
*
*/
public QName getExtends( )
{
return _extends;
}
/**
* Sets the value of the extends property.
*
* @param value
* allowed object is
* {@link QName }
*
*/
public void setExtends( QName value )
{
this._extends = value;
}
/**
* <p>Java class for anonymous complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* <complexType>
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <sequence>
* <element name="table" type="{http://schemas.google.com/dspl/2010}ConceptTableMapping"/>
* </sequence>
* </restriction>
* </complexContent>
* </complexType>
* </pre>
*
*
*/
@XmlAccessorType( XmlAccessType.FIELD )
@XmlType( name = "", propOrder = { "table" } )
public static class Data
{
@XmlElement( required = true )
protected ConceptTableMapping table;
/**
* Gets the value of the table property.
*
* @return
* possible object is
* {@link ConceptTableMapping }
*
*/
public ConceptTableMapping getTable( )
{
return table;
}
/**
* Sets the value of the table property.
*
* @param value
* allowed object is
* {@link ConceptTableMapping }
*
*/
public void setTable( ConceptTableMapping value )
{
this.table = value;
}
}
/**
* <p>Java class for anonymous complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* <complexType>
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <attribute name="ref" type="{http://www.w3.org/2001/XMLSchema}QName" />
* </restriction>
* </complexContent>
* </complexType>
* </pre>
*
*
*/
@XmlAccessorType( XmlAccessType.FIELD )
@XmlType( name = "" )
public static class Topic
{
@XmlAttribute( name = "ref" )
protected QName ref;
/**
* Gets the value of the ref property.
*
* @return
* possible object is
* {@link QName }
*
*/
public QName getRef( )
{
return ref;
}
/**
* Sets the value of the ref property.
*
* @param value
* allowed object is
* {@link QName }
*
*/
public void setRef( QName value )
{
this.ref = value;
}
}
/**
* <p>Java class for anonymous complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* <complexType>
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <attribute name="ref" use="required" type="{http://schemas.google.com/dspl/2010}DataType" />
* </restriction>
* </complexContent>
* </complexType>
* </pre>
*
*
*/
@XmlAccessorType( XmlAccessType.FIELD )
@XmlType( name = "" )
public static class Type
{
@XmlAttribute( name = "ref", required = true )
protected DataType ref;
/**
* Gets the value of the ref property.
*
* @return
* possible object is
* {@link DataType }
*
*/
public DataType getRef( )
{
return ref;
}
/**
* Sets the value of the ref property.
*
* @param value
* allowed object is
* {@link DataType }
*
*/
public void setRef( DataType value )
{
this.ref = value;
}
}
@javax.xml.bind.annotation.XmlTransient
protected com.metsci.glimpse.dspl.parser.table.PropertyTableData tableData;
@javax.xml.bind.annotation.XmlTransient
protected DataSet parentDataset;
public DataSet getDataSet( )
{
return parentDataset;
}
public void setDataSet( DataSet dataSet )
{
this.parentDataset = dataSet;
}
@javax.xml.bind.annotation.XmlTransient
protected Concept parentConcept;
public Concept getParentConcept( )
{
return parentConcept;
}
public void setParentConcept( Concept parent )
{
this.parentConcept = parent;
}
public String getNameEnglish( )
{
if ( info != null )
{
String englishName = info.getNameEnglish( );
if ( englishName != null ) return englishName;
}
// if no name is provided use the id
return id;
}
public Table getTable( ) throws javax.xml.bind.JAXBException, java.io.IOException, com.metsci.glimpse.dspl.util.DsplException
{
return com.metsci.glimpse.dspl.util.DsplHelper.getTable( this );
}
public com.metsci.glimpse.dspl.parser.table.PropertyTableData getTableData( ) throws javax.xml.bind.JAXBException, java.io.IOException, com.metsci.glimpse.dspl.util.DsplException
{
if ( tableData != null ) return tableData;
tableData = com.metsci.glimpse.dspl.util.DsplHelper.getTableData( this );
return tableData;
}
public boolean isInstanceOf( Concept superConcept )
{
return com.metsci.glimpse.dspl.util.DsplHelper.isInstanceOf( this, superConcept );
}
public ConceptProperty getProperty( String ref )
{
if ( ref == null ) return null;
for ( ConceptProperty property : getProperty( ) )
{
if ( ref.equals( property.getId( ) ) )
{
return property;
}
}
return null;
}
public Attribute getAttribute( String ref )
{
if ( ref == null ) return null;
for ( Attribute attribute : getAttribute( ) )
{
if ( ref.equals( attribute.getId( ) ) )
{
return attribute;
}
}
return null;
}
@Override
public boolean equals( Object o )
{
if ( o == null ) return false;
if ( o == this ) return true;
if ( o instanceof Concept )
{
Concept c = ( Concept ) o;
return com.metsci.glimpse.dspl.util.DsplHelper.equals( this, c );
}
return false;
}
}