KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sf > hajdbc > distributable > DatabaseCommand


1 /*
2  * HA-JDBC: High-Availability JDBC
3  * Copyright (c) 2004-2006 Paul Ferraro
4  *
5  * This library is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU Lesser General Public License as published by the
7  * Free Software Foundation; either version 2.1 of the License, or (at your
8  * option) any later version.
9  *
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 JavaDoc;
24 import java.io.IOException JavaDoc;
25 import java.io.ObjectInput JavaDoc;
26 import java.io.ObjectOutput JavaDoc;
27
28 import net.sf.hajdbc.Database;
29 import net.sf.hajdbc.DatabaseCluster;
30
31 /**
32  * Represents a database command to be executed on a given database cluster.
33  * @author Paul Ferraro
34  * @version $Revision: 1264 $
35  * @since 1.0
36  */

37 public abstract class DatabaseCommand implements Externalizable JavaDoc
38 {
39     protected String JavaDoc databaseId;
40     
41     /**
42      * Constructs a new DatabaseCommand.
43      */

44     protected DatabaseCommand()
45     {
46         // Do nothing
47
}
48     
49     /**
50      * Constructs a new DatabaseCommand.
51      * @param database a database descriptor
52      */

53     public DatabaseCommand(Database database)
54     {
55         this.databaseId = database.getId();
56     }
57     
58     /**
59      * @see java.io.Externalizable#writeExternal(java.io.ObjectOutput)
60      */

61     public void writeExternal(ObjectOutput JavaDoc output) throws IOException JavaDoc
62     {
63         output.writeUTF(this.databaseId);
64     }
65
66     /**
67      * @see java.io.Externalizable#readExternal(java.io.ObjectInput)
68      */

69     public void readExternal(ObjectInput JavaDoc input) throws IOException JavaDoc
70     {
71         this.databaseId = input.readUTF();
72     }
73     
74     /**
75      * Execute this command on the specified database cluster.
76      * @param databaseCluster a database cluster
77      * @throws java.sql.SQLException if command failed to execute
78      */

79     public abstract void execute(DatabaseCluster databaseCluster);
80     
81     /**
82      * @see java.lang.Object#toString()
83      */

84     @Override JavaDoc
85     public String JavaDoc toString()
86     {
87         return this.getClass().getName() + " [" + this.databaseId + "]";
88     }
89 }
90
Popular Tags