/* * 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.XmlType; import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import javax.xml.namespace.QName; /** * * An attribute of a dataset or a concept. * * * <p>Java class for Attribute complex type. * * <p>The following schema fragment specifies the expected content contained within this class. * * <pre> * <complexType name="Attribute"> * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> * <element name="info" type="{http://schemas.google.com/dspl/2010}Info" minOccurs="0"/> * <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" /> * <attribute name="format" type="{http://www.w3.org/2001/XMLSchema}string" /> * </restriction> * </complexContent> * </complexType> * </element> * <group ref="{http://schemas.google.com/dspl/2010}ValuesGroup" minOccurs="0"/> * </sequence> * <attribute name="id" type="{http://schemas.google.com/dspl/2010}LocalId" /> * <attribute name="concept" type="{http://www.w3.org/2001/XMLSchema}QName" /> * </restriction> * </complexContent> * </complexType> * </pre> * * */ @XmlAccessorType( XmlAccessType.FIELD ) @XmlType( name = "Attribute", propOrder = { "info", "type", "value", "conceptValue" } ) public class Attribute { protected Info info; protected Attribute.Type type; protected List<Value> value; protected Attribute.ConceptValue conceptValue; @XmlAttribute( name = "id" ) @XmlJavaTypeAdapter( CollapsedStringAdapter.class ) protected String id; @XmlAttribute( name = "concept" ) protected QName conceptRef; /** * 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 type property. * * @return * possible object is * {@link Attribute.Type } * */ public Attribute.Type getType( ) { return type; } /** * Sets the value of the type property. * * @param value * allowed object is * {@link Attribute.Type } * */ public void setType( Attribute.Type value ) { this.type = value; } /** * Gets the value of the value 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 value property. * * <p> * For example, to add a new item, do as follows: * <pre> * getValue().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link Value } * * */ public List<Value> getValue( ) { if ( value == null ) { value = new ArrayList<Value>( ); } return this.value; } /** * Gets the value of the conceptValue property. * * @return * possible object is * {@link Attribute.ConceptValue } * */ public Attribute.ConceptValue getConceptValue( ) { return conceptValue; } /** * Sets the value of the conceptValue property. * * @param value * allowed object is * {@link Attribute.ConceptValue } * */ public void setConceptValue( Attribute.ConceptValue value ) { this.conceptValue = 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 conceptRef property. * * @return * possible object is * {@link QName } * */ public QName getConceptRef( ) { return conceptRef; } /** * Sets the value of the conceptRef property. * * @param value * allowed object is * {@link QName } * */ public void setConceptRef( QName value ) { this.conceptRef = 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="concept" use="required" type="{http://www.w3.org/2001/XMLSchema}QName" /> * </restriction> * </complexContent> * </complexType> * </pre> * * */ @XmlAccessorType( XmlAccessType.FIELD ) @XmlType( name = "" ) public static class ConceptValue { @XmlAttribute( name = "concept", required = true ) protected QName concept; /** * Gets the value of the concept property. * * @return * possible object is * {@link QName } * */ public QName getConcept( ) { return concept; } /** * Sets the value of the concept property. * * @param value * allowed object is * {@link QName } * */ public void setConcept( QName value ) { this.concept = 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" /> * <attribute name="format" type="{http://www.w3.org/2001/XMLSchema}string" /> * </restriction> * </complexContent> * </complexType> * </pre> * * */ @XmlAccessorType( XmlAccessType.FIELD ) @XmlType( name = "" ) public static class Type { @XmlAttribute( name = "ref", required = true ) protected DataType ref; @XmlAttribute( name = "format" ) protected String format; /** * 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; } /** * Gets the value of the format property. * * @return * possible object is * {@link String } * */ public String getFormat( ) { return format; } /** * Sets the value of the format property. * * @param value * allowed object is * {@link String } * */ public void setFormat( String value ) { this.format = value; } } @javax.xml.bind.annotation.XmlTransient protected Concept parentConcept; public static class AttributeProperties { protected int index; protected com.metsci.glimpse.dspl.parser.table.PropertyTableData table; public AttributeProperties( Attribute attribute ) throws javax.xml.bind.JAXBException, java.io.IOException, com.metsci.glimpse.dspl.util.DsplException { this( attribute.getPropertyIndex( ), attribute.getConcept( ).getTableData( ) ); } public AttributeProperties( int index, com.metsci.glimpse.dspl.parser.table.PropertyTableData table ) { this.index = index; this.table = table; } public com.metsci.glimpse.dspl.parser.table.PropertyTableData getPropertyTableData( ) { return this.table; } public int getIndex( ) { return this.index; } public String getStringData( String ref ) { return this.table.getColumn( ref ).getStringData( this.index ); } public int getIntegerData( String ref ) { return this.table.getColumn( ref ).getIntegerData( this.index ); } public float getFloatData( String ref ) { return this.table.getColumn( ref ).getFloatData( this.index ); } public boolean getBooleanData( String ref ) { return this.table.getColumn( ref ).getBooleanData( this.index ); } public long getDateData( String ref ) { return this.table.getColumn( ref ).getDateData( this.index ); } public String getStringData( Concept ref ) { return this.table.getColumn( ref ).getStringData( this.index ); } public int getIntegerData( Concept ref ) { return this.table.getColumn( ref ).getIntegerData( this.index ); } public float getFloatData( Concept ref ) { return this.table.getColumn( ref ).getFloatData( this.index ); } public boolean getBooleanData( Concept ref ) { return this.table.getColumn( ref ).getBooleanData( this.index ); } public long getDateData( Concept ref ) { return this.table.getColumn( ref ).getDateData( this.index ); } } public AttributeProperties getAttributeProperties( ) throws javax.xml.bind.JAXBException, java.io.IOException, com.metsci.glimpse.dspl.util.DsplException { return new AttributeProperties( this ); } protected int getPropertyIndex( ) throws javax.xml.bind.JAXBException, java.io.IOException, com.metsci.glimpse.dspl.util.DsplException { if ( getType( ).getRef( ) != DataType.CONCEPT ) { throw new com.metsci.glimpse.dspl.util.DsplException( "Cannot retrieve TableColumn index for non-Concept Attribute." ); } String value = getValueEnglish( ); Concept concept = getConcept( ); com.metsci.glimpse.dspl.parser.table.PropertyTableData tableData = concept.getTableData( ); com.metsci.glimpse.dspl.parser.column.TableColumn keyColumn = tableData.getColumn( concept ); int size = keyColumn.getSize( ); for ( int i = 0; i < size; i++ ) { String row = keyColumn.getStringData( i ); if ( value.equals( row ) ) return i; } throw new com.metsci.glimpse.dspl.util.DsplException( "Concept %s does not have key %s in its property data table.", concept.getNameEnglish( ), value ); } public Concept getParentConcept( ) { return parentConcept; } public void setParentConcept( Concept parentConcept ) { this.parentConcept = parentConcept; } public Concept getConcept( ) throws javax.xml.bind.JAXBException, java.io.IOException, com.metsci.glimpse.dspl.util.DsplException { DataSet dataset = this.parentConcept.getDataSet( ); return dataset.getConcept( this.conceptRef ); } 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 String getValueEnglish( ) { return com.metsci.glimpse.dspl.util.DsplHelper.getValueEnglish( getValue( ) ); } }