01: /**
02: * Copyright (c) 2007, Aberystwyth University
03: *
04: * All rights reserved.
05: *
06: * Redistribution and use in source and binary forms, with or without
07: * modification, are permitted provided that the following conditions
08: * are met:
09: *
10: * - Redistributions of source code must retain the above
11: * copyright notice, this list of conditions and the
12: * following disclaimer.
13: *
14: * - Redistributions in binary form must reproduce the above copyright
15: * notice, this list of conditions and the following disclaimer in
16: * the documentation and/or other materials provided with the
17: * distribution.
18: *
19: * - Neither the name of the Centre for Advanced Software and
20: * Intelligent Systems (CASIS) nor the names of its
21: * contributors may be used to endorse or promote products derived
22: * from this software without specific prior written permission.
23: *
24: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25: * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26: * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
27: * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
28: * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
29: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
30: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
31: * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
32: * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
33: * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
34: * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
35: * SUCH DAMAGE.
36: */package org.purl.sword.base;
37:
38: /**
39: * Author : $Author: nst $
40: * Date : $Date: 2007/09/21 15:18:53 $
41: * Revision : $Revision: 1.2 $
42: * Name : $Name: $
43: */
44:
45: import nu.xom.Element;
46:
47: /**
48: * Common methods that should be supported by all classes that
49: * represent data in the SWORD api.
50: *
51: * @author Neil Taylor
52: */
53: public interface SwordElementInterface {
54: /**
55: * Marshall the data in the object to the XOM Element.
56: *
57: * @return The Element.
58: */
59: public Element marshall();
60:
61: /**
62: * Unmarshall the data in the specified element and store it
63: * in the object.
64: *
65: * @param element The data to unmarshall.
66: * @throws UnmarshallException If the element is not of the
67: * correct type, or if there is an error unmarshalling the data.
68: */
69: public void unmarshall(Element element) throws UnmarshallException;
70: }
|