henplus.commands
Class DumpCommand

java.lang.Object
  extended by henplus.AbstractCommand
      extended by henplus.commands.DumpCommand
All Implemented Interfaces:
Command, Interruptable

public class DumpCommand
extends AbstractCommand
implements Interruptable

Dump out and read that dump of a table; database-independently. This reads directly from the stream, so only needs not much memory, no matter the size of the file. --------------------------- (tabledump 'student' (dump-version 1 1) (henplus-version 0.3.3) (database-info 'MySQL - 3.23.47') (meta ('name', 'sex', 'student_id') ('STRING', 'STRING', 'INTEGER' )) (data ('Megan','F',1) ('Joseph','M',2) ('Kyle','M',3) ('Mac Donald\'s','M',44)) (rows 4)) --------------------------- QUICK AND DIRTY HACK .. NOT YET NICE. Too long. grown. Refactor..! (create an henplus.dump package so that this can be used

Author:
Henner Zeller

Field Summary
 
Fields inherited from interface henplus.Command
EXEC_FAILED, SUCCESS, SYNTAX_ERROR
 
Constructor Summary
DumpCommand(ListUserObjectsCommand tc, LoadCommand lc)
           
 
Method Summary
 void checkSupported(int version)
           
 Iterator complete(CommandDispatcher disp, String partialCommand, String lastWord)
          complete the table name.
 int execute(SQLSession session, String cmd, String param)
          execute the command given.
 void expect(LineNumberReader in, char ch)
           
 String[] getCommandList()
          returns the command-strings this command can handle.
 String getLongDescription(String cmd)
          returns a longer string describing this action.
 String getShortDescription()
          return a descriptive string.
 String getSynopsis(String cmd)
          retuns a synopsis-string.
 void interrupt()
           
 boolean isComplete(String command)
          dump-in and verify-dump is complete as single-liner.
 henplus.commands.DumpCommand.MetaProperty[] parseMetaData(LineNumberReader in)
           
 boolean requiresValidSession(String cmd)
          verify works without session.
 
Methods inherited from class henplus.AbstractCommand
argumentCount, getOption, getOptions, handleCommandline, participateInCommandCompletion, registerOptions, setOptions, shutdown
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DumpCommand

public DumpCommand(ListUserObjectsCommand tc,
                   LoadCommand lc)
Method Detail

getCommandList

public String[] getCommandList()
returns the command-strings this command can handle.

Specified by:
getCommandList in interface Command

requiresValidSession

public boolean requiresValidSession(String cmd)
verify works without session.

Specified by:
requiresValidSession in interface Command
Overrides:
requiresValidSession in class AbstractCommand
Parameters:
cmd - the subcommand this is requested for; one of the commands returned by Command.getCommandList().

isComplete

public boolean isComplete(String command)
dump-in and verify-dump is complete as single-liner. dump-out and dump-conditional needs a semicolon.

Specified by:
isComplete in interface Command
Overrides:
isComplete in class AbstractCommand
Parameters:
command - the partial command read so far given to decide by the command whether it is complete or not.

execute

public int execute(SQLSession session,
                   String cmd,
                   String param)
execute the command given.

Specified by:
execute in interface Command
Parameters:
session - the SQLsession this command is executed from.
cmd - the command as string.
param - the rest parameters following the command.
Returns:
one of SUCCESS, SYNTAX_ERROR, EXEC_FAILED to indicate the exit status of this command. On SYNTAX_ERROR, the CommandDispatcher displays a synopsis if available.

parseMetaData

public henplus.commands.DumpCommand.MetaProperty[] parseMetaData(LineNumberReader in)
                                                          throws IOException
Throws:
IOException

checkSupported

public void checkSupported(int version)
                    throws IllegalArgumentException
Throws:
IllegalArgumentException

expect

public void expect(LineNumberReader in,
                   char ch)
            throws IOException
Throws:
IOException

interrupt

public void interrupt()
Specified by:
interrupt in interface Interruptable

complete

public Iterator complete(CommandDispatcher disp,
                         String partialCommand,
                         String lastWord)
complete the table name.

Specified by:
complete in interface Command
Overrides:
complete in class AbstractCommand
Parameters:
disp - the CommandDispatcher - you might want to access other values through it.
partialCommand - The command typed so far
lastWord - the last word returned by readline.

getShortDescription

public String getShortDescription()
return a descriptive string.

Specified by:
getShortDescription in interface Command
Overrides:
getShortDescription in class AbstractCommand

getSynopsis

public String getSynopsis(String cmd)
Description copied from interface: Command
retuns a synopsis-string. The synopsis string returned should follow the following conventions:

Should contain no newline, no leading spaces. This synopsis is printed in the detailed help of a command or if the execute()-method returned a SYNTAX_ERROR.

Specified by:
getSynopsis in interface Command
Overrides:
getSynopsis in class AbstractCommand
Parameters:
cmd - the command the synopsis is for. This is one of the possible commands returned by Command.getCommandList().

getLongDescription

public String getLongDescription(String cmd)
Description copied from interface: Command
returns a longer string describing this action. This should return a String describing details of the given command. This String should start with a TAB-character in each new line (the first line is a new line). The last line should not end with newline.

Specified by:
getLongDescription in interface Command
Overrides:
getLongDescription in class AbstractCommand
Parameters:
cmd - The command the long description is asked for. This is one of the possible commands returned by Command.getCommandList().


? 1997..2006 Henner Zeller