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

## 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, CMXCommandForGUI, CMXSample1, Dev2CSV, DeviationInstanceExtractor, DeviationInstanceGeneratorSample, MakeDeadpanSCC, MIDIXML2SCC, MIDIXML2SMF, PerformanceRenderingTest1, PerformanceRenderingTest2, SCC2MIDI, SCC2WAV, SMF2MIDIXML, SMF2SCC, SMFOverlapChecker, SMFOverlapRemover, SMFOverlapRemover2

    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` | `appendHelpMessage(java.lang.String s)` 推奨されていません。
`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` | `getFileName()` 推奨されていません。 Returns the name of the currently processing file. 現在処理中のファイル名を返します. runメソッド内で現在処理中のファイル名が必要になったとき(たとえば拡張子だけが 異なるファイルを追加で読み込む場合など)に用いることを想定しています.
`protected java.lang.String` | `getHelpMessage()` OBSOLETE!
`protected java.lang.String` | `getOutFileName()`
`protected java.lang.String` | `getVersion()` Returns the program version.
`F1` | `indata()` 推奨されていません。 Returns the input document. 入力ドキュメントを返します. runメソッドをオーバーライドする際に, runメソッド内で読み込んだデータに アクセスする際に用いることを想定しています.
`void` | `init(CMXFileWrapper f)` ファイルを読み込んだ直後にすべき処理がある場合には, このメソッドをオーバーライドします.
`protected boolean` | `loopEnabled()`
`void` | `newOutputData(java.lang.String toptagname)` 推奨されていません。 Creates an empty document with the specified top-tag name and assigns it to the `outdata` instance. 指定された名前のトップタグを持つ空ドキュメントを生成し, `outdata`インスタンスに代入します.
`F2` | `outdata()` 推奨されていません。 Returns the output document. 出力ドキュメントを返します. runメソッドをオーバーライドする際に, ファイルに書き込むべきデータを CMXFileWrapperオブジェクトに追加する際に用いることを想定しています.
`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 void` | `run()` 推奨されていません。 Please to override this method to define the main processing. このメソッドをオーバーライドして, コマンドのメイン処理を記述してください.
`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.
`void` | `setOutputData(F2 outdata)` 推奨されていません。 Assigns the specified CMXFileWrapper object to the output object. 指定されたCMXFileWrapperオブジェクトを出力オブジェクトに指定します．
`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

メソッドの詳細

### getOutFileName

    protected java.lang.String getOutFileName()

### indata

    public final F1 indata()

  推奨されていません。

  Returns the input document.

  入力ドキュメントを返します. runメソッドをオーバーライドする際に, runメソッド内で読み込んだデータに アクセスする際に用いることを想定しています.

### outdata

    public final F2 outdata()

  推奨されていません。

  Returns the output document.

  出力ドキュメントを返します. runメソッドをオーバーライドする際に, ファイルに書き込むべきデータを CMXFileWrapperオブジェクトに追加する際に用いることを想定しています.

### newOutputData

    public final void newOutputData(java.lang.String toptagname)
                             throws InvalidFileTypeException,
                                    javax.xml.parsers.ParserConfigurationException,
                                    org.xml.sax.SAXException

  推奨されていません。 Creates an empty document with the specified top-tag name and assigns it to the `outdata` instance. 指定された名前のトップタグを持つ空ドキュメントを生成し, `outdata`インスタンスに代入します.

  例外:
    `InvalidFileTypeException`
    `javax.xml.parsers.ParserConfigurationException`
    `org.xml.sax.SAXException`

### setOutputData

    public final void setOutputData(F2 outdata)

  推奨されていません。 Assigns the specified CMXFileWrapper object to the output object. 指定されたCMXFileWrapperオブジェクトを出力オブジェクトに指定します．

### getVersion

    protected java.lang.String getVersion()

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

### 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を返さなければなりません.

### getDestDir

    protected java.lang.String getDestDir()

### loopEnabled

    protected boolean loopEnabled()

### requiredFiles

    protected int requiredFiles()

### 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`

### init

    public void init(CMXFileWrapper f)

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

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

### 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`

### 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`

### run

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

  推奨されていません。

  Please to override this method to define the main processing.

  このメソッドをオーバーライドして, コマンドのメイン処理を記述してください.

  例外:
    `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`

### 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`

### 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`

### 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`

### getFileName

    protected final java.lang.String getFileName()

  推奨されていません。

  Returns the name of the currently processing file.

  現在処理中のファイル名を返します. runメソッド内で現在処理中のファイル名が必要になったとき(たとえば拡張子だけが 異なるファイルを追加で読み込む場合など)に用いることを想定しています.

### getConfigXMLWrapper

    public static ConfigXMLWrapper getConfigXMLWrapper()

### getHelpMessage

    protected java.lang.String getHelpMessage()

  OBSOLETE!

  Shows the help message.

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

### addOptionHelpMessage

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

### appendHelpMessage

    protected void appendHelpMessage(java.lang.String s)

  推奨されていません。

### showErrorMessage

    protected void showErrorMessage(java.lang.Exception e)

  Shows the error message.

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

### exitWithMessage

    protected void exitWithMessage(java.lang.String s)

### 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.
  指定されたファイル名から拡張子を取り除いたものを返します.

### 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.
  指定されたファイル名からディレクトリ名と拡張子を取り除いたものを返します.

### removeDirName

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

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

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