Java tutorial
/* * Copyright (C) 2010-2012 "Oh no sequences!" * * This is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * This program 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 Affero General Public License for more details. * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/> */ package com.ohnosequences.xml.model.bio4j; import com.ohnosequences.xml.api.model.XMLElement; import com.ohnosequences.xml.api.model.XMLElementException; import java.util.LinkedList; import java.util.List; import org.jdom2.Element; /** * * @author <a href="mailto:ppareja@ohnosequences.com">Pablo Pareja-Tobes</a> */ public class Bio4jNodeXML extends XMLElement { public static final String TAG_NAME = "node"; public static final String DESCRIPTION_TAG_NAME = "description"; public static final String NAME_TAG_NAME = "name"; public static final String ITEM_TYPE_TAG_NAME = "item_type"; public static final String INCOMING_RELATIONSHIPS_TAG_NAME = "in_rels"; public static final String OUTGOING_RELATIONSHIPS_TAG_NAME = "out_rels"; public static final String INDEXES_TAG_NAME = "indexes"; public static final String PROPERTIES_TAG_NAME = "properties"; public static final String JAVADOC_URL_TAG_NAME = "javadoc_url"; public static final String DATA_SOURCE_TAG_NAME = "data_source"; public static final String NODE_ITEM_TYPE = "node"; public Bio4jNodeXML() { super(new Element(TAG_NAME)); } public Bio4jNodeXML(Element elem) throws XMLElementException { super(elem); if (!elem.getName().equals(TAG_NAME)) { throw new XMLElementException(XMLElementException.WRONG_TAG_NAME, new XMLElement(elem)); } } public Bio4jNodeXML(String value) throws Exception { super(value); if (!root.getName().equals(TAG_NAME)) { throw new XMLElementException(XMLElementException.WRONG_TAG_NAME, new XMLElement(value)); } } //----------------GETTERS--------------------- public String getDescription() { return getNodeText(DESCRIPTION_TAG_NAME); } public String getNodeName() { return getNodeText(NAME_TAG_NAME); } public String getItemType() { return getNodeText(ITEM_TYPE_TAG_NAME); } public String getJavadocUrl() { return getNodeText(JAVADOC_URL_TAG_NAME); } public String getDataSource() { return getNodeText(DATA_SOURCE_TAG_NAME); } public List<Bio4jRelationshipXML> getIncomingRelationships() throws XMLElementException { LinkedList<Bio4jRelationshipXML> list = new LinkedList<Bio4jRelationshipXML>(); Element elem = root.getChild(INCOMING_RELATIONSHIPS_TAG_NAME); if (elem != null) { for (Object e : elem.getChildren(Bio4jRelationshipXML.TAG_NAME)) { list.add(new Bio4jRelationshipXML((Element) e)); } } return list; } public List<Bio4jRelationshipXML> getOutgoingRelationships() throws XMLElementException { LinkedList<Bio4jRelationshipXML> list = new LinkedList<Bio4jRelationshipXML>(); Element elem = root.getChild(OUTGOING_RELATIONSHIPS_TAG_NAME); if (elem != null) { for (Object e : elem.getChildren(Bio4jRelationshipXML.TAG_NAME)) { list.add(new Bio4jRelationshipXML((Element) e)); } } return list; } public List<Bio4jNodeIndexXML> getIndexes() throws XMLElementException { LinkedList<Bio4jNodeIndexXML> list = new LinkedList<Bio4jNodeIndexXML>(); Element elem = root.getChild(INDEXES_TAG_NAME); if (elem != null) { for (Object e : elem.getChildren(Bio4jNodeIndexXML.TAG_NAME)) { list.add(new Bio4jNodeIndexXML((Element) e)); } } return list; } //----------------SETTERS------------------- public void setDescription(String value) { setNodeText(DESCRIPTION_TAG_NAME, value); } public void setNodeName(String value) { setNodeText(NAME_TAG_NAME, value); } public void setItemType(String value) { setNodeText(ITEM_TYPE_TAG_NAME, value); } public void setJavadocUrl(String value) { setNodeText(JAVADOC_URL_TAG_NAME, value); } public void setDataSource(String value) { setNodeText(DATA_SOURCE_TAG_NAME, value); } public void addIncomingRelationship(Bio4jRelationshipXML rel) { Element elem = initIncomingRelationshipsTag(); elem.addContent(rel.getRoot()); } public void addOutgoingRelationship(Bio4jRelationshipXML rel) { Element elem = initOutgoingRelationshipsTag(); elem.addContent(rel.getRoot()); } public void addIndex(Bio4jNodeIndexXML index) { Element elem = initIndexesTag(); elem.addContent(index.getRoot()); } public void addProperty(Bio4jPropertyXML property) { Element elem = initPropertiesTag(); elem.addContent(property.getRoot()); } private Element initIncomingRelationshipsTag() { Element elem = root.getChild(INCOMING_RELATIONSHIPS_TAG_NAME); if (elem == null) { elem = new Element(INCOMING_RELATIONSHIPS_TAG_NAME); root.addContent(elem); } return elem; } private Element initOutgoingRelationshipsTag() { Element elem = root.getChild(OUTGOING_RELATIONSHIPS_TAG_NAME); if (elem == null) { elem = new Element(OUTGOING_RELATIONSHIPS_TAG_NAME); root.addContent(elem); } return elem; } private Element initIndexesTag() { Element elem = root.getChild(INDEXES_TAG_NAME); if (elem == null) { elem = new Element(INDEXES_TAG_NAME); root.addContent(elem); } return elem; } private Element initPropertiesTag() { Element elem = root.getChild(PROPERTIES_TAG_NAME); if (elem == null) { elem = new Element(PROPERTIES_TAG_NAME); root.addContent(elem); } return elem; } }