1 package com.ontotext.ordi.wsmo4rdf.remote;
2
3 import org.omwg.ontology.Ontology;
4 import org.wsmo.common.IRI;
5 import org.wsmo.common.TopEntity;
6 import org.wsmo.common.exception.InvalidModelException;
7 import org.wsmo.factory.Factory;
8 import org.wsmo.factory.WsmoFactory;
9 import org.wsmo.mediator.Mediator;
10 import org.wsmo.service.Goal;
11 import org.wsmo.service.WebService;
12 import org.wsmo.wsml.Parser;
13 import org.wsmo.wsml.ParserException;
14 import org.wsmo.wsml.Serializer;
15
16 import com.ontotext.ordi.wsmo4rdf.remote.exception.UnmarshalException;
17
18 public class Marshaller {
19 private final static Serializer serializer = Factory.createSerializer(null);
20 private final static Parser parser = Factory.createParser(null);
21 private final static WsmoFactory wsmoFactory = Factory
22 .createWsmoFactory(null);
23
24 public static String marshal(TopEntity topEntity) {
25 if (topEntity == null) {
26 return null;
27 }
28 StringBuffer outsb = new StringBuffer();
29 serializer.serialize(new TopEntity[] { topEntity }, outsb);
30 return outsb.toString();
31 }
32
33 public static Goal unmarshalGoal(String goal)
34 throws UnmarshalException {
35 TopEntity te = parseTopEntityFromString(goal);
36 if (!(te instanceof Goal)) {
37 throw new UnmarshalException();
38 }
39 return (Goal) te;
40 }
41
42 private static TopEntity parseTopEntityFromString(String topEntity)
43 throws UnmarshalException {
44 TopEntity[] topent;
45 try {
46 topent = parser.parse(new StringBuffer(topEntity));
47 } catch (ParserException e) {
48 throw new UnmarshalException(e);
49 } catch (InvalidModelException e) {
50 throw new UnmarshalException(e);
51 }
52 if (topent == null || topent.length < 1) {
53 throw new IllegalArgumentException();
54 }
55 return topent[0];
56 }
57
58 public static Ontology unmarshalOntology(String ont)
59 throws UnmarshalException {
60 TopEntity topent = parseTopEntityFromString(ont);
61
62 if (!(topent instanceof Ontology)) {
63 throw new UnmarshalException();
64 }
65 Ontology onto = (Ontology) topent;
66 return onto;
67 }
68
69 public static WebService unmarshalWebService(String webServiceAsString)
70 throws UnmarshalException {
71 TopEntity te = parseTopEntityFromString(webServiceAsString);
72 if (!(te instanceof WebService)) {
73 throw new UnmarshalException();
74 }
75 return (WebService) te;
76 }
77
78 public static Mediator unmarshalMediatior(String mediatorAsString)
79 throws UnmarshalException {
80 TopEntity te = parseTopEntityFromString(mediatorAsString);
81 if (!(te instanceof Mediator)) {
82 throw new UnmarshalException();
83 }
84 return (Mediator) te;
85 }
86
87 public static IRI newIRI(String id) {
88 return wsmoFactory.createIRI(id);
89 }
90
91 }