01: /*
02: * HA-JDBC: High-Availability JDBC
03: * Copyright (c) 2004-2007 Paul Ferraro
04: *
05: * This library is free software; you can redistribute it and/or modify it
06: * under the terms of the GNU Lesser General Public License as published by the
07: * Free Software Foundation; either version 2.1 of the License, or (at your
08: * option) any later version.
09: *
10: * This library is distributed in the hope that it will be useful, but WITHOUT
11: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12: * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
13: * for more details.
14: *
15: * You should have received a copy of the GNU Lesser General Public License
16: * along with this library; if not, write to the Free Software Foundation,
17: * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18: *
19: * Contact: ferraro@users.sourceforge.net
20: */
21: package net.sf.hajdbc.distributable;
22:
23: import java.io.Externalizable;
24: import java.io.IOException;
25: import java.io.ObjectInput;
26: import java.io.ObjectOutput;
27:
28: /**
29: * Represents a database command to be executed on a given database cluster.
30: * @author Paul Ferraro
31: * @since 1.0
32: */
33: public abstract class AbstractCommand implements Command<Boolean>,
34: Externalizable {
35: protected String databaseId;
36:
37: /**
38: * Constructs a new AbstractDatabaseCommand.
39: */
40: protected AbstractCommand() {
41: // Do nothing
42: }
43:
44: /**
45: * Constructs a new AbstractDatabaseCommand.
46: * @param databaseId a database identifier
47: */
48: public AbstractCommand(String databaseId) {
49: this .databaseId = databaseId;
50: }
51:
52: /**
53: * @see java.io.Externalizable#writeExternal(java.io.ObjectOutput)
54: */
55: @Override
56: public void writeExternal(ObjectOutput output) throws IOException {
57: output.writeUTF(this .databaseId);
58: }
59:
60: /**
61: * @see java.io.Externalizable#readExternal(java.io.ObjectInput)
62: */
63: @Override
64: public void readExternal(ObjectInput input) throws IOException {
65: this .databaseId = input.readUTF();
66: }
67:
68: /**
69: * @see java.lang.Object#toString()
70: */
71: @Override
72: public String toString() {
73: return this .getClass().getName() + " [" + this .databaseId + "]"; //$NON-NLS-1$ //$NON-NLS-2$
74: }
75:
76: /**
77: * @see net.sf.hajdbc.distributable.Command#marshalResult(java.lang.Object)
78: */
79: @Override
80: public Object marshalResult(Boolean result) {
81: return result;
82: }
83:
84: /**
85: * @see net.sf.hajdbc.distributable.Command#unmarshalResult(java.lang.Object)
86: */
87: @Override
88: public Boolean unmarshalResult(Object result) {
89: return (Boolean) result;
90: }
91: }
|