/** * Copyright (C) 2012-2013 Selventa, Inc. * * This file is part of the OpenBEL Framework. * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * The OpenBEL Framework is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public * License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with the OpenBEL Framework. If not, see <http://www.gnu.org/licenses/>. * * Additional Terms under LGPL v3: * * This license does not authorize you and you are prohibited from using the * name, trademarks, service marks, logos or similar indicia of Selventa, Inc., * or, in the discretion of other licensors or authors of the program, the * name, trademarks, service marks, logos or similar indicia of such authors or * licensors, in any marketing or advertising materials relating to your * distribution of the program or any covered product. This restriction does * not waive or limit your obligation to keep intact all copyright notices set * forth in the program as delivered to you. * * If you distribute the program in whole or in part, or any modified version * of the program, and you assume contractual liability to the recipient with * respect to the program or modified version, then you will indemnify the * authors and licensors of the program for any liabilities that these * contractual assumptions directly impose on those licensors and authors. */ package org.openbel.bel.xbel.model; import java.util.ArrayList; import java.util.Calendar; 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; import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** * * The citation annotation type to capture the knowledge source details. * * * <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="reference" type="{http://www.w3.org/2001/XMLSchema}string"/> * <element name="name" type="{http://www.w3.org/2001/XMLSchema}string"/> * <element name="comment" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> * <element name="date" type="{http://www.w3.org/2001/XMLSchema}date" minOccurs="0"/> * <element name="authorGroup" minOccurs="0"> * <complexType> * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> * <element name="author" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded"/> * </sequence> * </restriction> * </complexContent> * </complexType> * </element> * </sequence> * <attribute name="type" use="required" type="{http://belframework.org/schema/1.0/xbel}citationType" /> * </restriction> * </complexContent> * </complexType> * </pre> * * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "reference", "name", "comment", "date", "authorGroup" }) @XmlRootElement(name = "citation") public class XBELCitation extends JAXBElement { @XmlElement(required = true) protected String reference; @XmlElement(required = true) protected String name; protected String comment; @XmlElement(type = String.class) @XmlJavaTypeAdapter(Adapter1.class) @XmlSchemaType(name = "date") protected Calendar date; protected XBELCitation.AuthorGroup authorGroup; @XmlAttribute(namespace = "http://belframework.org/schema/1.0/xbel", required = true) protected CitationType type; /** * Gets the value of the reference property. * * @return * possible object is * {@link String } * */ public String getReference() { return reference; } /** * Sets the value of the reference property. * * @param value * allowed object is * {@link String } * */ public void setReference(String value) { this.reference = value; } public boolean isSetReference() { return (this.reference != null); } /** * Gets the value of the name property. * * @return * possible object is * {@link String } * */ public String getName() { return name; } /** * Sets the value of the name property. * * @param value * allowed object is * {@link String } * */ public void setName(String value) { this.name = value; } public boolean isSetName() { return (this.name != null); } /** * Gets the value of the comment property. * * @return * possible object is * {@link String } * */ public String getComment() { return comment; } /** * Sets the value of the comment property. * * @param value * allowed object is * {@link String } * */ public void setComment(String value) { this.comment = value; } public boolean isSetComment() { return (this.comment != null); } /** * Gets the value of the date property. * * @return * possible object is * {@link String } * */ public Calendar getDate() { return date; } /** * Sets the value of the date property. * * @param value * allowed object is * {@link String } * */ public void setDate(Calendar value) { this.date = value; } public boolean isSetDate() { return (this.date != null); } /** * Gets the value of the authorGroup property. * * @return * possible object is * {@link XBELCitation.AuthorGroup } * */ public XBELCitation.AuthorGroup getAuthorGroup() { return authorGroup; } /** * Sets the value of the authorGroup property. * * @param value * allowed object is * {@link XBELCitation.AuthorGroup } * */ public void setAuthorGroup(XBELCitation.AuthorGroup value) { this.authorGroup = value; } public boolean isSetAuthorGroup() { return (this.authorGroup != null); } /** * Gets the value of the type property. * * @return * possible object is * {@link CitationType } * */ public CitationType getType() { return type; } /** * Sets the value of the type property. * * @param value * allowed object is * {@link CitationType } * */ public void setType(CitationType value) { this.type = value; } public boolean isSetType() { return (this.type != null); } /** * * The author type for a citation. * * * <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="author" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded"/> * </sequence> * </restriction> * </complexContent> * </complexType> * </pre> * * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "author" }) public static class AuthorGroup extends JAXBElement { @XmlElement(required = true) protected List<String> author; /** * Gets the value of the author 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 author property. * * <p> * For example, to add a new item, do as follows: * <pre> * getAuthor().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link String } * * */ public List<String> getAuthor() { if (author == null) { author = new ArrayList<String>(); } return this.author; } public boolean isSetAuthor() { return ((this.author != null) && (!this.author.isEmpty())); } public void unsetAuthor() { this.author = null; } } }