概要 | パッケージ | クラス | 階層ツリー | 索引 | ヘルプ
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

## jp.crestmuse.cmx.commands
クラス CMXCommand<F1 extends FileWrapperCompatible,F2 extends FileWrapperCompatible>

    java.lang.Object
      jp.crestmuse.cmx.commands.CMXCommand<F1,F2>

すべての実装されたインタフェース:
  CMXInitializer

直系の既知のサブクラス:
  AbstractWAVAnalyzer, ApplyCSVTempoDeviation, ApplyDeviationInstance, Dev2CSV, DeviationInstanceExtractor, DeviationInstanceGeneratorSample, MakeDeadpanSCC, MIDIXML2SCC, MIDIXML2SMF, SCC2MIDI, SCC2WAV, SMF2MIDIXML, SMF2SCC

    public abstract class CMXCommand<F1 extends FileWrapperCompatible,F2 extends FileWrapperCompatible>

extends java.lang.Object
implements CMXInitializer

The abstract class `CMXCommand` is the superclass of classes that wraps commands executed on a command line.

コマンドラインから実行するクラスの抽象上位クラスです. 非リアルタイム型のコマンドを作る際には, この抽象クラスを継承して作成します. このクラスにはファイルの読み書きをはじめとする, 共通に用いられる処理が 最初から実装されていますので, ユーザは自分がつくろうとしているコマンド独自の 処理だけを実装すればよいことになります.

具体的なコマンド作成手順は以下の通りです.

CMXCommandクラスを継承してコマンドを作成する上で最低限作る必要があるのは, runメソッドとmainメソッドです. runメソッドは, CMXCommandクラスでは抽象クラスとして定義されており, 指定されたファイルを読み込んだ後の処理内容をここで記述します. 本クラスで定義されているstartメソッドを実行することで, 指定された各ファイルに対して, ファイルを読み込んでrunメソッドを実行して 結果をファイルに書き出すという処理を行います. ですので, mainメソッドではstartメソッドを呼ぶことだけすればよいことに なります. mainメソッドの典型的な記述内容は以下の通りです.

    public static void main(String[] args) {
      MyCommand c = new MyCommand();
      try {
        c.start(args);
      } catch (Exception e) {
        c.showErrorMessage(e);
        System.exit(1);
      }
    }

この他に, 前処理を記述するためのpreprocメソッド，後処理を記述するための postprocメソッド，各コマンド独自のオプション処理を追加するための setOptionsLocal, setBoolOptionsLocalメソッドがあります.

バージョン:
  0.21
作成者:
  Tetsuro Kitahara (t.kitahara@ksc.kwansei.ac.jp)

コンストラクタの概要
`CMXCommand()` Constructor

メソッドの概要
`protected static void` | `addOptionHelpMessage(java.lang.String option, java.lang.String message)`
`protected void` | `exitWithMessage(java.lang.String s)`
`protected static java.lang.String` | `getBaseName(java.lang.String filename)` Returns the filename from which both the directory and extension are removed.
`protected static java.lang.String` | `getBaseName(java.lang.String filename, java.lang.String ext)` Returns the filename from which both the directory and extension are removed.
`static ConfigXMLWrapper` | `getConfigXMLWrapper()`
`protected java.lang.String` | `getDestDir()`
`protected java.lang.String` | `getHelpMessage()` OBSOLETE!
`protected java.lang.String` | `getOutFileName()`
`protected java.lang.String` | `getVersion()` Returns the program version.
`void` | `init(CMXFileWrapper f)` ファイルを読み込んだ直後にすべき処理がある場合には, このメソッドをオーバーライドします.
`protected boolean` | `loopEnabled()`
`protected void` | `postproc()` Please override this method if your command require post-processing.
`protected void` | `preproc()` Please override this method if your command require pre-processing.
`protected FileWrapperCompatible` | `readInputData(java.lang.String filename)` Reads the specified file and returns a CMXFileWrapper object.
`protected static java.lang.String` | `removeDirName(java.lang.String filename)` Returns the filename from which the directory is removed.
`protected static java.lang.String` | `removeExt(java.lang.String filename)` Returns the filename from which the extension is removed.
`protected static java.lang.String` | `removeExt(java.lang.String filename, java.lang.String ext)` Returns the filename from which the extension is removed.
`protected int` | `requiredFiles()`
`protected F2` | `run(F1 f)`
`protected F2` | `run(F1[] f)`
`protected boolean` | `setBoolOptionsLocal(java.lang.String option)` Please override this method to support yes/no options in a subclass.
`protected boolean` | `setOptionsLocal(java.lang.String option, java.lang.String value)` Please override this method to support non-yes/no options in your subclass.
`protected void` | `showErrorMessage(java.lang.Exception e)` Shows the error message.
`void` | `start(java.lang.String args)`
`void` | `start(java.lang.String[] args)` 以下の処理を行います.

クラス java.lang.Object から継承されたメソッド
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

コンストラクタの詳細

### CMXCommand

    public CMXCommand()

  Constructor

メソッドの詳細

### addOptionHelpMessage

    protected static void addOptionHelpMessage(java.lang.String option,
                                               java.lang.String message)

### exitWithMessage

    protected void exitWithMessage(java.lang.String s)

### getBaseName

    protected static java.lang.String getBaseName(java.lang.String filename)

  Returns the filename from which both the directory and extension are removed.
  指定されたファイル名からディレクトリ名と拡張子を取り除いたものを返します.

### getBaseName

    protected static java.lang.String getBaseName(java.lang.String filename,
                                                  java.lang.String ext)

  Returns the filename from which both the directory and extension are removed.
  指定されたファイル名からディレクトリ名と拡張子を取り除いたものを返します.

### getConfigXMLWrapper

    public static ConfigXMLWrapper getConfigXMLWrapper()

### getDestDir

    protected java.lang.String getDestDir()

### getHelpMessage

    protected java.lang.String getHelpMessage()

  OBSOLETE!

  Shows the help message.

  ヘルプメッセージを表示します. 独自のヘルプメッセージに変更したい場合は, ここをオーバーライドしてください. (通常はユーザが呼び出す必要はありません.)

### getOutFileName

    protected java.lang.String getOutFileName()

### getVersion

    protected java.lang.String getVersion()

  Returns the program version.
  プログラムのバージョンを返します.

### init

    public void init(CMXFileWrapper f)

  ファイルを読み込んだ直後にすべき処理がある場合には, このメソッドをオーバーライドします.

  定義:
    インタフェース `CMXInitializer` 内の `init`

### loopEnabled

    protected boolean loopEnabled()

### postproc

    protected void postproc()
                     throws java.io.IOException,
                            javax.xml.parsers.ParserConfigurationException,
                            org.xml.sax.SAXException,
                            javax.xml.transform.TransformerException

  Please override this method if your command require post-processing. The default implementation does nothing.

  後処理が必要な場合は, このメソッドをオーバーライドしてください. デフォルトの実装では何もしません.

  例外:
    `java.io.IOException`
    `javax.xml.parsers.ParserConfigurationException`
    `org.xml.sax.SAXException`
    `javax.xml.transform.TransformerException`

### preproc

    protected void preproc()
                    throws java.io.IOException,
                           jp.crestmuse.cmx.commands.InvalidOptionException,
                           javax.xml.parsers.ParserConfigurationException,
                           org.xml.sax.SAXException,
                           javax.xml.transform.TransformerException

  Please override this method if your command require pre-processing. The default implementation does nothing.

  前処理が必要な場合は, このメソッドをオーバーライドしてください. デフォルトの実装では何もしません.

  例外:
    `java.io.IOException`
    `jp.crestmuse.cmx.commands.InvalidOptionException`
    `javax.xml.parsers.ParserConfigurationException`
    `org.xml.sax.SAXException`
    `javax.xml.transform.TransformerException`

### readInputData

    protected FileWrapperCompatible readInputData(java.lang.String filename)
                                           throws java.io.IOException,
                                                  javax.xml.parsers.ParserConfigurationException,
                                                  org.xml.sax.SAXException,
                                                  javax.xml.transform.TransformerException

  Reads the specified file and returns a CMXFileWrapper object.

  指定されたファイル名を読み込んでCMXFileWrapperオブジェクトを 返します. 具体的には, CMXFileWrapper.readfile(filename)を実行しています. 通常はこのメソッドは使用しませんが, コマンドの都合により, 上記のメソッドが使えない場合(スタンダードMIDIファイル をMIDI XMLドキュメントとして読み込む場合)にオーバーライドしてください. (通常, ユーザがこのメソッドを呼び出す必要はありません.)

  例外:
    `java.io.IOException`
    `javax.xml.parsers.ParserConfigurationException`
    `org.xml.sax.SAXException`
    `javax.xml.transform.TransformerException`

### removeDirName

    protected static java.lang.String removeDirName(java.lang.String filename)

  Returns the filename from which the directory is removed.
  指定されたファイル名からディレクトリ名を取り除いたものを返します.

### removeExt

    protected static java.lang.String removeExt(java.lang.String filename)

  Returns the filename from which the extension is removed.
  指定されたファイル名から拡張子を取り除いたものを返します.

### removeExt

    protected static java.lang.String removeExt(java.lang.String filename,
                                                java.lang.String ext)

  Returns the filename from which the extension is removed.
  指定されたファイル名から拡張子を取り除いたものを返します.

### requiredFiles

    protected int requiredFiles()

### run

    protected F2 run(F1 f)
                                            throws java.io.IOException,
                                                   javax.xml.parsers.ParserConfigurationException,
                                                   org.xml.sax.SAXException,
                                                   javax.xml.transform.TransformerException,
                                                   InvalidFileTypeException

  例外:
    `java.io.IOException`
    `javax.xml.parsers.ParserConfigurationException`
    `org.xml.sax.SAXException`
    `javax.xml.transform.TransformerException`
    `InvalidFileTypeException`

### run

    protected F2 run(F1[] f)
                                            throws java.io.IOException,
                                                   javax.xml.parsers.ParserConfigurationException,
                                                   org.xml.sax.SAXException,
                                                   javax.xml.transform.TransformerException,
                                                   InvalidFileTypeException

  例外:
    `java.io.IOException`
    `javax.xml.parsers.ParserConfigurationException`
    `org.xml.sax.SAXException`
    `javax.xml.transform.TransformerException`
    `InvalidFileTypeException`

### setBoolOptionsLocal

    protected boolean setBoolOptionsLocal(java.lang.String option)

  Please override this method to support yes/no options in a subclass. This method should return true when the option is processed and false when not processed.
  サブクラスで独自のYES/NO型オプションをサポートする場合には, このメソッドをオーバーライドしてください. このメソッド内でオプションが処理された場合にはtrueを, 処理されなかった場合にはfalseを返さなければなりません.

### setOptionsLocal

    protected boolean setOptionsLocal(java.lang.String option,
                                      java.lang.String value)

  Please override this method to support non-yes/no options in your subclass.

  サブクラスで独自の非YES/NO型オプションをサポートする場合には, このメソッドをオーバーライドしてください. このメソッドがオプションを受け入れたらtrue, 受け入れなかったらfalseを返さなければなりません.

### showErrorMessage

    protected void showErrorMessage(java.lang.Exception e)

  Shows the error message.

  エラーメッセージを表示します. 独自のエラーメッセージに変更したい場合は, ここをオーバーライドしてください. (通常はユーザが呼び出す必要はありません.)

### start

    public final void start(java.lang.String args)
                     throws java.io.IOException,
                            org.xml.sax.SAXException,
                            javax.xml.parsers.ParserConfigurationException,
                            javax.xml.transform.TransformerException,
                            jp.crestmuse.cmx.commands.InvalidOptionException,
                            InvalidFileTypeException

  例外:
    `java.io.IOException`
    `org.xml.sax.SAXException`
    `javax.xml.parsers.ParserConfigurationException`
    `javax.xml.transform.TransformerException`
    `jp.crestmuse.cmx.commands.InvalidOptionException`
    `InvalidFileTypeException`

### start

    public final void start(java.lang.String[] args)
                     throws java.io.IOException,
                            org.xml.sax.SAXException,
                            javax.xml.parsers.ParserConfigurationException,
                            javax.xml.transform.TransformerException,
                            jp.crestmuse.cmx.commands.InvalidOptionException,
                            InvalidFileTypeException

  以下の処理を行います.
  1. コマンドラインを解釈し, ファイル名であれば内部のキューに蓄積し, オプションであればその処理を行います.
  2. preprocメソッドを呼び出します.
  3. 指定されたファイル名の各々に対して, ファイルの読み込み, runメソッドの実行, 結果のファイルへの書き込みを行います.
  4. postprocメソッドを呼び出します.
  ユーザが定義したコマンドクラスのmainメソッドから呼び出されることを 想定しています.

  例外:
    `java.io.IOException`
    `org.xml.sax.SAXException`
    `javax.xml.parsers.ParserConfigurationException`
    `javax.xml.transform.TransformerException`
    `jp.crestmuse.cmx.commands.InvalidOptionException`
    `InvalidFileTypeException`

概要 | パッケージ | クラス | 階層ツリー | 索引 | ヘルプ
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド