01: /*
02: * The contents of this file are subject to the
03: * Mozilla Public License Version 1.1 (the "License");
04: * you may not use this file except in compliance with the License.
05: * You may obtain a copy of the License at http://www.mozilla.org/MPL/
06: *
07: * Software distributed under the License is distributed on an "AS IS"
08: * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.
09: * See the License for the specific language governing rights and
10: * limitations under the License.
11: *
12: * The Initial Developer of the Original Code is Simulacra Media Ltd.
13: * Portions created by Simulacra Media Ltd are Copyright (C) Simulacra Media Ltd, 2004.
14: *
15: * All Rights Reserved.
16: *
17: * Contributor(s):
18: */
19: package org.openharmonise.rm.commands;
20:
21: import org.openharmonise.rm.resources.lifecycle.*;
22:
23: /**
24: * Gets the live version of the 'command object', if it is
25: * an an instance of <code>Editable</code>.
26: *
27: * @author Michael Bell
28: * @version $Revision: 1.3 $
29: *
30: */
31: public class CmdGetLiveVersion extends AbstractCmd {
32:
33: /**
34: * Creates an instance of the command
35: *
36: */
37: public CmdGetLiveVersion() {
38: super ();
39: }
40:
41: /* (non-Javadoc)
42: * @see org.openharmonise.rm.commands.AbstractCmd#execute()
43: */
44: public Object execute(Context context) throws CommandException {
45: if ((m_commandObj instanceof Editable) == false) {
46: throw new InvalidCommandException(
47: "Command is not valid for this object:"
48: + m_commandObj.getClass());
49: }
50:
51: if (isAvailable(context) == false) {
52: throw new InvalidCommandException(
53: "Command is not available for this object");
54: }
55:
56: Editable eObj = (Editable) getCommandObject(context);
57: Editable rtnObj = null;
58:
59: try {
60: rtnObj = eObj.getLiveVersion();
61: } catch (Exception e) {
62: throw new CommandExecutionException(e.getMessage());
63: }
64:
65: return rtnObj;
66: }
67:
68: /* (non-Javadoc)
69: * @see org.openharmonise.rm.commands.AbstractCmd#getName()
70: */
71: public String getName() {
72: return "GetLiveVersion";
73: }
74:
75: /* (non-Javadoc)
76: * @see org.openharmonise.rm.commands.AbstractCmd#isValidCommandObject(java.lang.Object)
77: */
78: public boolean isValidCommandObject(Object obj) {
79: return (obj instanceof Editable);
80: }
81: }
|