KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > openharmonise > rm > commands > CmdChangeStatus


1 /*
2  * The contents of this file are subject to the
3  * Mozilla Public License Version 1.1 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at http://www.mozilla.org/MPL/
6  *
7  * Software distributed under the License is distributed on an "AS IS"
8  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.
9  * 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  * Changes the status of the 'command object', if it is an instance of <code>Editable</code>
25  *
26  * @author Michael Bell
27  * @version $Revision: 1.3 $
28  *
29  */

30 public class CmdChangeStatus extends AbstractCmd {
31     public final static String JavaDoc PARAM_STATUS = "status_code";
32
33     /**
34      * Creates a new instance of the command
35      */

36     public CmdChangeStatus() {
37         super();
38     }
39
40     /* (non-Javadoc)
41      * @see org.openharmonise.rm.commands.AbstractCmd#execute()
42      */

43     public Object JavaDoc execute(Context context) throws CommandException {
44         String JavaDoc status_code = this.getParameter(PARAM_STATUS);
45         if((m_commandObj instanceof Editable) == false) {
46             throw new InvalidCommandException("Command is not valid for this object:" + m_commandObj.getClass());
47         }
48
49         if (isAvailable(context) == false) {
50           throw new InvalidCommandException("Command is not available for this object");
51         }
52         
53         Editable editable = (Editable) getCommandObject(context);
54         Object JavaDoc cmdResult = null;
55
56         try {
57             Status status = Status.getStatus(Integer.parseInt(status_code));
58             cmdResult = editable.changeStatus(status);
59         } catch (EditException e) {
60             throw new CommandExecutionException("Error changing status",e);
61         }
62         
63         logCommand(context);
64
65         return cmdResult;
66     }
67
68     /* (non-Javadoc)
69      * @see org.openharmonise.rm.commands.AbstractCmd#getName()
70      */

71     public String JavaDoc getName() {
72         return "ChangeStatus";
73     }
74
75     /* (non-Javadoc)
76      * @see org.openharmonise.rm.commands.AbstractCmd#isValidCommandObject(java.lang.Object)
77      */

78     public boolean isValidCommandObject(Object JavaDoc obj) {
79         return (obj instanceof Editable);
80     }
81 }
Popular Tags