VSTのメイン

檜山正幸
Fri Sep 29 2006

目次

1. メイン

  1. VSTMain0 : NullEvaluatorを使ったメイン
  2. VSTMain1 : TabFileEvaluatorを使ったメイン
  3. VSTMain2 : FileContentEvaluatorを使ったメイン
/* VSTMain0.java */
package sample;

import java.io.*;
import java.util.*;
import sample.model.*;

class NullEvaluator implements Evaluator {
  public String eval(String arg) {
    return null;
  }
}

public class VSTMain0 implements ExitReportHandler {

  public static void main(String[] args) {
    String inputName;
    Startable starter;

    if (args.length == 0) {
      inputName = null;
    } else {
      inputName = args[0];
    }
    // 生成
    Evaluator evaluator = new NullEvaluator();
    VSTMainCmp mainCmp = new VSTMainCmp();
    ExitReportHandler reportHandler = new VSTMain0();
    // ワイヤリング
    mainCmp.inputName = inputName;
    mainCmp.evaluator = evaluator;
    mainCmp.reportHandler = reportHandler;
    starter = mainCmp.starter;
    // 実行
    try {
      starter.start();
    } catch (Exception e) {
      System.err.println(e);
      System.exit(1);
    }
    System.exit(0);
  }

  public void aborted(int exitCode, String msg, Throwable cause) {
    System.err.println(msg);
    System.exit(exitCode);
  }
  public void finished(int exitCode) {
    ;
  }
}
/* VSTMain1.java */
package sample;

import java.io.*;
import java.util.*;
import sample.model.*;

public class VSTMain1 implements ExitReportHandler {
  public static void main(String[] args) {
    if (args.length < 2) {
      System.err.println("this command requires 2 arguments.");
      System.exit(1);
    }

    String inputName = args[0];
    String contextName = args[1];
    // evaluatorの準備
    TabFileEvaluator evaluator = new TabFileEvaluator();
    try {
      evaluator.load(contextName);
    } catch (Exception e) {
      System.err.println(e);
      System.exit(1);
    }
    // starterの準備
    Startable starter;
    // 生成
    VSTMainCmp mainCmp = new VSTMainCmp();
    ExitReportHandler reportHandler = new VSTMain0();
    // ワイヤリング
    mainCmp.inputName = inputName;
    mainCmp.evaluator = evaluator;
    mainCmp.reportHandler = reportHandler;
    starter = mainCmp.starter;
    // 実行
    try {
      starter.start();
    } catch (Exception e) {
      System.err.println(e);
      System.exit(1);
    }
    System.exit(0);
  }
  public void aborted(int exitCode, String msg, Throwable cause) {
    System.err.println(msg);
    System.exit(exitCode);
  }
  public void finished(int exitCode) {
    ;
  }
}
/* VSTMain2.java */
package sample;

import java.io.*;
import java.util.*;
import sample.model.*;
import sample.misc.FileContentEvaluator;

public class VSTMain2 implements ExitReportHandler {

  public static void main(String[] args) {
    String inputName;
    Startable starter;

    if (args.length == 0) {
      inputName = null;
    } else {
      inputName = args[0];
    }
    // 生成
    Evaluator evaluator = new FileContentEvaluator();
    VSTMainCmp mainCmp = new VSTMainCmp();
    ExitReportHandler reportHandler = new VSTMain0();
    // ワイヤリング
    mainCmp.inputName = inputName;
    mainCmp.evaluator = evaluator;
    mainCmp.reportHandler = reportHandler;
    starter = mainCmp.starter;
    // 実行
    try {
      starter.start();
    } catch (Exception e) {
      System.err.println(e);
      System.exit(1);
    }
    System.exit(0);
  }

  public void aborted(int exitCode, String msg, Throwable cause) {
    System.err.println(msg);
    System.exit(exitCode);
  }
  public void finished(int exitCode) {
    ;
  }
}