/* * 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.XmlRootElement; import javax.xml.bind.annotation.XmlSchemaType; import javax.xml.bind.annotation.XmlType; /** * * A DSPL specification describes a dataset. A dataset is * identified by its namespace. A dataset is comprised of the * following elements: * * - Tables: Data for the concepts and slices defined in the * dataset * * - Concepts: User-specified definitions and structures used in * the dataset * * - Slices: Combinations of dimensions and metrics present in * the dataset * * - Topics: Hierarchical labels used to organise the concepts of * the dataset * * * <p>Java class for dspl element declaration. * * <p>The following schema fragment specifies the expected content contained within this class. * * <pre> * <element name="dspl"> * <complexType> * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> * <element name="import" maxOccurs="unbounded" minOccurs="0"> * <complexType> * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <attribute name="namespace" use="required" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /> * <attribute name="location" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /> * </restriction> * </complexContent> * </complexType> * </element> * <element name="info" type="{http://schemas.google.com/dspl/2010}Info"/> * <element name="provider" type="{http://schemas.google.com/dspl/2010}Info"/> * <element name="attribute" type="{http://schemas.google.com/dspl/2010}Attribute" maxOccurs="unbounded" minOccurs="0"/> * <element name="topics" minOccurs="0"> * <complexType> * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> * <element name="topic" type="{http://schemas.google.com/dspl/2010}Topic" maxOccurs="unbounded"/> * </sequence> * </restriction> * </complexContent> * </complexType> * </element> * <element name="concepts" minOccurs="0"> * <complexType> * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> * <element name="concept" type="{http://schemas.google.com/dspl/2010}Concept" maxOccurs="unbounded"/> * </sequence> * </restriction> * </complexContent> * </complexType> * </element> * <element name="slices" minOccurs="0"> * <complexType> * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> * <element name="slice" type="{http://schemas.google.com/dspl/2010}Slice" maxOccurs="unbounded"/> * </sequence> * </restriction> * </complexContent> * </complexType> * </element> * <element name="tables" minOccurs="0"> * <complexType> * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> * <element name="table" type="{http://schemas.google.com/dspl/2010}Table" maxOccurs="unbounded"/> * </sequence> * </restriction> * </complexContent> * </complexType> * </element> * </sequence> * <attribute name="targetNamespace" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> * </restriction> * </complexContent> * </complexType> * </element> * </pre> * * */ @XmlAccessorType( XmlAccessType.FIELD ) @XmlType( name = "", propOrder = { "_import", "info", "provider", "attribute", "topics", "concepts", "slices", "tables" } ) @XmlRootElement( name = "dspl" ) public class DataSet { @XmlElement( name = "import" ) protected List<DataSet.Import> _import; @XmlElement( required = true ) protected Info info; @XmlElement( required = true ) protected Info provider; protected List<Attribute> attribute; protected DataSet.Topics topics; protected DataSet.Concepts concepts; protected DataSet.Slices slices; protected DataSet.Tables tables; @XmlAttribute( name = "targetNamespace" ) @XmlSchemaType( name = "anyURI" ) protected String targetNamespace; /** * Gets the value of the import 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 import property. * * <p> * For example, to add a new item, do as follows: * <pre> * getImport().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link DataSet.Import } * * */ public List<DataSet.Import> getImport( ) { if ( _import == null ) { _import = new ArrayList<DataSet.Import>( ); } return this._import; } /** * Gets the value of the info property. * * @return * possible object is * {@link Info } * */ public Info getInfo( ) { return info; } /** * Sets the value of the info property. * * @param value * allowed object is * {@link Info } * */ public void setInfo( Info value ) { this.info = value; } /** * Gets the value of the provider property. * * @return * possible object is * {@link Info } * */ public Info getProvider( ) { return provider; } /** * Sets the value of the provider property. * * @param value * allowed object is * {@link Info } * */ public void setProvider( Info value ) { this.provider = 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 topics property. * * @return * possible object is * {@link DataSet.Topics } * */ public DataSet.Topics getTopics( ) { return topics; } /** * Sets the value of the topics property. * * @param value * allowed object is * {@link DataSet.Topics } * */ public void setTopics( DataSet.Topics value ) { this.topics = value; } /** * Gets the value of the concepts property. * * @return * possible object is * {@link DataSet.Concepts } * */ public DataSet.Concepts getConcepts( ) { return concepts; } /** * Sets the value of the concepts property. * * @param value * allowed object is * {@link DataSet.Concepts } * */ public void setConcepts( DataSet.Concepts value ) { this.concepts = value; } /** * Gets the value of the slices property. * * @return * possible object is * {@link DataSet.Slices } * */ public DataSet.Slices getSlices( ) { return slices; } /** * Sets the value of the slices property. * * @param value * allowed object is * {@link DataSet.Slices } * */ public void setSlices( DataSet.Slices value ) { this.slices = value; } /** * Gets the value of the tables property. * * @return * possible object is * {@link DataSet.Tables } * */ public DataSet.Tables getTables( ) { return tables; } /** * Sets the value of the tables property. * * @param value * allowed object is * {@link DataSet.Tables } * */ public void setTables( DataSet.Tables value ) { this.tables = value; } /** * Gets the value of the targetNamespace property. * * @return * possible object is * {@link String } * */ public String getTargetNamespace( ) { return targetNamespace; } /** * Sets the value of the targetNamespace property. * * @param value * allowed object is * {@link String } * */ public void setTargetNamespace( String value ) { this.targetNamespace = 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="concept" type="{http://schemas.google.com/dspl/2010}Concept" maxOccurs="unbounded"/> * </sequence> * </restriction> * </complexContent> * </complexType> * </pre> * * */ @XmlAccessorType( XmlAccessType.FIELD ) @XmlType( name = "", propOrder = { "concept" } ) public static class Concepts { @XmlElement( required = true ) protected List<Concept> concept; /** * Gets the value of the concept 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 concept property. * * <p> * For example, to add a new item, do as follows: * <pre> * getConcept().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link Concept } * * */ public List<Concept> getConcept( ) { if ( concept == null ) { concept = new ArrayList<Concept>( ); } return this.concept; } } /** * <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="namespace" use="required" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /> * <attribute name="location" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /> * </restriction> * </complexContent> * </complexType> * </pre> * * */ @XmlAccessorType( XmlAccessType.FIELD ) @XmlType( name = "" ) public static class Import { @XmlAttribute( name = "namespace", required = true ) @XmlSchemaType( name = "anySimpleType" ) protected String namespace; @XmlAttribute( name = "location" ) @XmlSchemaType( name = "anySimpleType" ) protected String location; /** * Gets the value of the namespace property. * * @return * possible object is * {@link String } * */ public String getNamespace( ) { return namespace; } /** * Sets the value of the namespace property. * * @param value * allowed object is * {@link String } * */ public void setNamespace( String value ) { this.namespace = value; } /** * Gets the value of the location property. * * @return * possible object is * {@link String } * */ public String getLocation( ) { return location; } /** * Sets the value of the location property. * * @param value * allowed object is * {@link String } * */ public void setLocation( String value ) { this.location = 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="slice" type="{http://schemas.google.com/dspl/2010}Slice" maxOccurs="unbounded"/> * </sequence> * </restriction> * </complexContent> * </complexType> * </pre> * * */ @XmlAccessorType( XmlAccessType.FIELD ) @XmlType( name = "", propOrder = { "slice" } ) public static class Slices { @XmlElement( required = true ) protected List<Slice> slice; /** * Gets the value of the slice 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 slice property. * * <p> * For example, to add a new item, do as follows: * <pre> * getSlice().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link Slice } * * */ public List<Slice> getSlice( ) { if ( slice == null ) { slice = new ArrayList<Slice>( ); } return this.slice; } } /** * <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}Table" maxOccurs="unbounded"/> * </sequence> * </restriction> * </complexContent> * </complexType> * </pre> * * */ @XmlAccessorType( XmlAccessType.FIELD ) @XmlType( name = "", propOrder = { "table" } ) public static class Tables { @XmlElement( required = true ) protected List<Table> table; /** * Gets the value of the table 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 table property. * * <p> * For example, to add a new item, do as follows: * <pre> * getTable().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link Table } * * */ public List<Table> getTable( ) { if ( table == null ) { table = new ArrayList<Table>( ); } return this.table; } } /** * <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="topic" type="{http://schemas.google.com/dspl/2010}Topic" maxOccurs="unbounded"/> * </sequence> * </restriction> * </complexContent> * </complexType> * </pre> * * */ @XmlAccessorType( XmlAccessType.FIELD ) @XmlType( name = "", propOrder = { "topic" } ) public static class Topics { @XmlElement( required = true ) protected List<Topic> topic; /** * 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 Topic } * * */ public List<Topic> getTopic( ) { if ( topic == null ) { topic = new ArrayList<Topic>( ); } return this.topic; } } @javax.xml.bind.annotation.XmlTransient protected java.io.File file; public java.io.File getFile( ) { return file; } public void setFile( java.io.File file ) { this.file = file; } @javax.xml.bind.annotation.XmlTransient protected com.metsci.glimpse.dspl.DsplParser parser; public com.metsci.glimpse.dspl.DsplParser getParser( ) { return parser; } public void setParser( com.metsci.glimpse.dspl.DsplParser parser ) { this.parser = parser; } public Concept getConcept( String namespace, String local ) throws javax.xml.bind.JAXBException, java.io.IOException, com.metsci.glimpse.dspl.util.DsplException { return com.metsci.glimpse.dspl.util.DsplHelper.getConcept( this, namespace, local ); } public Concept getConcept( String localId ) throws javax.xml.bind.JAXBException, java.io.IOException, com.metsci.glimpse.dspl.util.DsplException { return getConcept( null, localId ); } public Concept getConcept( javax.xml.namespace.QName ref ) throws javax.xml.bind.JAXBException, java.io.IOException, com.metsci.glimpse.dspl.util.DsplException { if ( ref == null ) return null; return getConcept( ref.getNamespaceURI( ), ref.getLocalPart( ) ); } public DataSet getDataSet( Import imp ) throws javax.xml.bind.JAXBException, java.io.IOException, com.metsci.glimpse.dspl.util.DsplException { return getDataSet( imp.getNamespace( ), imp.getLocation( ) ); } protected DataSet getDataSet( String namespace, String location ) throws javax.xml.bind.JAXBException, java.io.IOException, com.metsci.glimpse.dspl.util.DsplException { return parser.loadDataset( this, namespace, location ); } }