Main Page | Packages | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

GetBackendSchema.java

00001 /**
00002  * C-JDBC: Clustered JDBC.
00003  * Copyright (C) 2002-2004 French National Institute For Research In Computer
00004  * Science And Control (INRIA).
00005  * Contact: c-jdbc@objectweb.org
00006  * 
00007  * This library is free software; you can redistribute it and/or modify it
00008  * under the terms of the GNU Lesser General Public License as published by the
00009  * Free Software Foundation; either version 2.1 of the License, or any later
00010  * version.
00011  * 
00012  * This library is distributed in the hope that it will be useful, but WITHOUT
00013  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00014  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
00015  * for more details.
00016  * 
00017  * You should have received a copy of the GNU Lesser General Public License
00018  * along with this library; if not, write to the Free Software Foundation,
00019  * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
00020  *
00021  * Initial developer(s): Nicolas Modrzyk.
00022  * Contributor(s): ______________________.
00023  */
00024 
00025 package org.objectweb.cjdbc.console.text.commands.dbadmin;
00026 
00027 import java.io.BufferedWriter;
00028 import java.io.File;
00029 import java.io.FileWriter;
00030 import java.util.StringTokenizer;
00031 
00032 import org.objectweb.cjdbc.common.i18n.ConsoleTranslate;
00033 import org.objectweb.cjdbc.common.jmx.mbeans.VirtualDatabaseMBean;
00034 import org.objectweb.cjdbc.console.text.ConsoleException;
00035 import org.objectweb.cjdbc.console.text.module.VirtualDatabaseAdmin;
00036 
00037 /**
00038  * Command to get the schema of a database backend
00039  * 
00040  * @author <a href="mailto:Nicolas.Modrzyk@inrialpes.fr">Nicolas Modrzyk </a>
00041  * @version 1.0
00042  */
00043 public class GetBackendSchema extends AbstractAdminCommand
00044 {
00045 
00046   /**
00047    * Creates a new <code>GetBackendSchema</code> object
00048    * 
00049    * @param module owning module
00050    */
00051   public GetBackendSchema(VirtualDatabaseAdmin module)
00052   {
00053     super(module);
00054   }
00055 
00056   /**
00057    * @see org.objectweb.cjdbc.console.text.commands.ConsoleCommand#parse(java.lang.String)
00058    */
00059   public void parse(String commandText) throws Exception
00060   {
00061 
00062     StringTokenizer st = new StringTokenizer(commandText);
00063     int tokens = st.countTokens(); 
00064     if (tokens < 1)
00065       throw new ConsoleException(ConsoleTranslate
00066           .get("console.error.invalid.comment.argument"));
00067 
00068     String backendName = st.nextToken();
00069     String fileName = null;
00070     if (tokens >= 2)
00071     {
00072       fileName = st.nextToken().trim();
00073     }
00074     console.println(ConsoleTranslate.get(
00075         "admin.command.get.backend.schema.echo", new String[]{backendName,
00076             String.valueOf(fileName != null)}));
00077 
00078     VirtualDatabaseMBean vdjc = jmxClient.getVirtualDatabaseProxy(dbName, user,
00079         password);
00080 
00081     if (fileName == null)
00082     {
00083       //Write to standard output
00084       console.println(vdjc.getBackendSchema(backendName));
00085     }
00086     else
00087     {
00088       // Write to file
00089       File f = new File(fileName);
00090       BufferedWriter writer = new BufferedWriter(new FileWriter(f));
00091       writer.write(vdjc.getBackendSchema(backendName));
00092       writer.flush();
00093       writer.close();
00094     }
00095 
00096   }
00097 
00098   /**
00099    * @see org.objectweb.cjdbc.console.text.commands.ConsoleCommand#getCommandName()
00100    */
00101   public String getCommandName()
00102   {
00103     return "getBackendSchema";
00104   }
00105 
00106   /**
00107    * @see org.objectweb.cjdbc.console.text.commands.ConsoleCommand#getCommandDescription()
00108    */
00109   public String getCommandDescription()
00110   {
00111     return ConsoleTranslate.get("admin.command.get.backend.schema");
00112   }
00113 
00114   /**
00115    * @see org.objectweb.cjdbc.console.text.commands.ConsoleCommand#getCommandParameters()
00116    */
00117   public String getCommandParameters()
00118   {
00119     return "<backendName>";
00120   }
00121 
00122 }

Generated on Mon Apr 11 22:01:32 2005 for C-JDBC by  doxygen 1.3.9.1