1 /* 2 wsmo4j - a WSMO API and Reference Implementation 3 4 Copyright (c) 2004-2005, OntoText Lab. / SIRMA 5 6 This library is free software; you can redistribute it and/or modify it under 7 the terms of the GNU Lesser General Public License as published by the Free 8 Software Foundation; either version 2.1 of the License, or (at your option) 9 any later version. 10 This library is distributed in the hope that it will be useful, but WITHOUT 11 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 12 FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 13 details. 14 You should have received a copy of the GNU Lesser General Public License along 15 with this library; if not, write to the Free Software Foundation, Inc., 16 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 */ 18 package com.ontotext.wsmo4j.parser.xml; 19 20 /** 21 * <p>Title: WSMO4J</p> 22 * <p>Description: WSMO API and a Reference Implementation</p> 23 * <p>Copyright: Copyright (c) 2004-2005</p> 24 * <p>Company: OntoText Lab. / SIRMA </p> 25 * @author not attributable 26 * @version 1.0 27 * 28 */ 29 30 import org.w3c.dom.*; 31 import org.wsmo.common.*; 32 import org.wsmo.common.exception.*; 33 import org.wsmo.service.*; 34 35 import com.ontotext.wsmo4j.serializer.xml.*; 36 37 /** 38 * Helper type to serialize/deserialize xml element interface 39 * 40 * @author not attributable 41 */ 42 class NodeInterface { 43 static Interface deserialize(Node xmlNode, WsmlXmlParser parser) 44 throws InvalidModelException { 45 if (xmlNode == null || parser == null || xmlNode.getNodeName() != "interface") { 46 throw new IllegalArgumentException(); 47 } 48 49 IRI iriInterface = parser.getFactory().createIRI( 50 WsmlXmlHelper.getAttrValue(xmlNode, "name")); 51 Interface intrface = parser.getFactory().createInterface(iriInterface); 52 NodeTopEntity.processTopEntityNode(intrface, xmlNode, parser); 53 54 NodeList nodes = xmlNode.getChildNodes(); 55 for (int i = 0; i < nodes.getLength(); i++) { 56 Node node = nodes.item(i); 57 58 if (node.getNodeType() == Node.ELEMENT_NODE 59 && node.getNodeName() == "nonFunctionalProperties") { 60 NodeNFP.deserialize(intrface, node, parser); 61 } 62 else { 63 // TODO: Handle choreography and orchestration 64 } 65 } 66 67 return intrface; 68 } 69 70 static Element serialize(Interface intrface, WsmlXmlSerializer serializer) { 71 Element interfaceElement = serializer.createElement("interface"); 72 NodeTopEntity.serializeTopEntity(interfaceElement, intrface, serializer); 73 74 if (!intrface.listNFPValues().isEmpty()) { 75 NodeNFP.serialize(interfaceElement, intrface, serializer); 76 } 77 78 //TODO: Handle choreography and orchestration 79 80 return interfaceElement; 81 } 82 } 83 84 /* 85 * $Log$ 86 * Revision 1.2 2006/03/29 11:20:51 vassil_momtchev 87 * mediator support added; some code refactored; minor bugs fixed 88 * 89 * Revision 1.1 2005/11/28 14:03:48 vassil_momtchev 90 * package refactored from com.ontotext.wsmo4j.xmlparser to com.ontotext.wsmo4j.parser.xml 91 * 92 * Revision 1.4 2005/09/16 14:02:45 alex_simov 93 * Identifier.asString() removed, use Object.toString() instead 94 * (Implementations MUST override toString()) 95 * 96 * Revision 1.3 2005/08/08 08:24:40 vassil_momtchev 97 * javadoc added, bugfixes 98 * 99 */