01: /**
02: * Sequoia: Database clustering technology.
03: * Copyright (C) 2002-2004 French National Institute For Research In Computer
04: * Science And Control (INRIA).
05: * Contact: sequoia@continuent.org
06: *
07: * Licensed under the Apache License, Version 2.0 (the "License");
08: * you may not use this file except in compliance with the License.
09: * You may obtain a copy of the License at
10: *
11: * http://www.apache.org/licenses/LICENSE-2.0
12: *
13: * Unless required by applicable law or agreed to in writing, software
14: * distributed under the License is distributed on an "AS IS" BASIS,
15: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16: * See the License for the specific language governing permissions and
17: * limitations under the License.
18: *
19: * Initial developer(s): Jeff Mesnil
20: * Contributor(s): ______________________.
21: */package org.continuent.sequoia.console.text.commands.sqlconsole;
22:
23: import java.io.IOException;
24: import java.sql.Connection;
25: import java.sql.SQLException;
26:
27: import org.continuent.sequoia.common.i18n.ConsoleTranslate;
28: import org.continuent.sequoia.console.text.ConsoleException;
29: import org.continuent.sequoia.console.text.commands.ConsoleCommand;
30: import org.continuent.sequoia.console.text.module.VirtualDatabaseConsole;
31:
32: /**
33: * This class defines a "setisolation" sql command
34: *
35: * @author <a href="mailto:jeff.mesnil@emicnetworks.com">Jeff Mesnil</a>
36: */
37: public class SetIsolation extends ConsoleCommand {
38:
39: /**
40: * Creates a new <code>SetIsolation</code> object
41: *
42: * @param module the command is attached to
43: */
44: public SetIsolation(VirtualDatabaseConsole module) {
45: super (module);
46: }
47:
48: /**
49: * @see org.continuent.sequoia.console.text.commands.ConsoleCommand#parse(java.lang.String)
50: */
51: public void parse(String commandText) throws IOException,
52: ConsoleException {
53: try {
54: int isolation = new Integer(commandText.trim()).intValue();
55: Connection connection = ((VirtualDatabaseConsole) module)
56: .getConnection();
57: connection.setTransactionIsolation(isolation);
58: console.printInfo(ConsoleTranslate.get(
59: "sql.command.isolation.value", //$NON-NLS-1$
60: isolation));
61: } catch (NumberFormatException e) {
62: console.printError(getUsage());
63: } catch (SQLException e) {
64: throw new ConsoleException(ConsoleTranslate
65: .get("sql.command.isolation.failed"), e); //$NON-NLS-1$
66: }
67: }
68:
69: /**
70: * @see org.continuent.sequoia.console.text.commands.ConsoleCommand#getCommandName()
71: */
72: public String getCommandName() {
73: return "setisolation"; //$NON-NLS-1$
74: }
75:
76: /**
77: * @see org.continuent.sequoia.console.text.commands.ConsoleCommand#getCommandParameters()
78: */
79: public String getCommandParameters() {
80: return ConsoleTranslate.get("sql.command.isolation.params"); //$NON-NLS-1$
81: }
82:
83: /**
84: * @see org.continuent.sequoia.console.text.commands.ConsoleCommand#getCommandDescription()
85: */
86: public String getCommandDescription() {
87: return ConsoleTranslate
88: .get("sql.command.isolation.description"); //$NON-NLS-1$
89: }
90: }
|