rydeen
クラス Context

java.lang.Object
  上位を拡張 rydeen.Context

public class Context
extends Object

Rydeenの1セッションの実行に関する設定を保持するクラスです. 具体的には,以下の情報を保持します.

このオブジェクトは1セッションの情報を保持します. セッションでは,処理器の名前一覧で指定された順で処理器が実行されます. その際,各処理器は処理器名とそのセッション中に現れる順番を3桁の数字で表した数字をハイフン(-) で繋げた文字列をidとして設定されます. すなわち,以下の3つの処理器が4つ指定された場合,次のようなidが設定されます.

processorA, processorB, processorC, processorA
processorA-001, processorB-002, processorC-003, processorA-004

処理器に渡すパラメータは実行時オプションで指定できます. パラメータは処理器名とその処理器のパラメータをドット(.)で区切った文字列,もしくは, 処理器のidとその処理器のパラメータをドット(.)で区切った文字列を, パラメータとして認識します. すなわち,上記の4つの処理器が指定された場合,processorBのparamB1を指定するには processorB.paramB1,もしくは,processorB-002.paramB1という名称を用います.

また,processorAのparamA1を指定する場合,processorA.paramA1という名称を用いると, processorA-001, processorA-004の両方のparamA1を同時に指定することになります. 一方,processorA-001.paramA1という名称を用いれば,processorA-001のparamA1のみを設定できます. なお,簡略化のため,001のように,処理器名を省略することができます.すなわち,001はprocessorA-001と同一に扱われます.

getProcessorsメソッドを呼び出すと, getProcessorNamesが返す全ての処理器を構築し, 同じ順序の配列で返します.返された処理器はid, パラメータが設定されています. ただし,指定された名前の処理器が見つからない場合は UnknownProcessorException が,処理器のパラメータの値が衝突した場合は ArgumentsConflictExceptionが投げられます.

パラメータの衝突とは,同一の処理器の同一のパラメータに異なる値が指定されることを表します. すなわち,processorA-001.paramA1 = value1, processorA.paramA1 = value2の2つの方法で パラメータが指定された場合,processorA-001のparamA1はvalue1か,value2 のどちらの値を採用すれば良いのか不明です.そのため,ArgumentsConflictException が投げられます.

作成者:
Haruaki Tamada
関連項目:
Environment

コンストラクタの概要
Context(Context context)
          引数に与えられたEnvironment上で動き,引数で与えられた contextの項目をデフォルト値として持つオブジェクトを構築します.
Context(Environment env)
          引数に与えられたEnvironment上で動く設定オブジェクトを構築します.
 
メソッドの概要
 void addProcessorName(String processorName)
          処理を行う処理器を処理機名で指定して追加します.
 void addTarget(String arg)
          処理対象となるファイルを追加します.
 Argument[] findArguments(String keyPrefix)
           引数に指定された名前で始まるArgumentの一覧を返します.
 String getArgumentValue(String key)
          指定された名前を持つArgumentの値を返します.
 String getDestination()
          処理結果の出力先を返します.
 Environment getEnvironment()
          このオブジェクトが動いているEnvironmentを返します.
 int getProcessorCount()
          現在設定されている処理器の数を返します.
 String[] getProcessorNames()
          現在設定されている処理器の名前一覧を配列で返します.
 Processor[] getProcessors()
           実行する処理器を構築して配列で返します.
 String[] getTargets()
          処理対象のファイル一覧を返します.
 boolean hasArgument(String key)
          指定された名前を持つArgumentが存在すればtrueを返し, 存在しなければfalseを返します.
 void putArgument(String key, String value)
          指定された名前のArgumentの値を更新します.
 void setDestination(String dest)
          処理結果の出力先を設定します.
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

Context

public Context(Environment env)
引数に与えられたEnvironment上で動く設定オブジェクトを構築します.


Context

public Context(Context context)
引数に与えられたEnvironment上で動き,引数で与えられた contextの項目をデフォルト値として持つオブジェクトを構築します.

メソッドの詳細

getEnvironment

public Environment getEnvironment()
このオブジェクトが動いているEnvironmentを返します.


getProcessors

public Processor[] getProcessors()
                          throws ProcessorException

実行する処理器を構築して配列で返します. 作成された各処理器はパラメータが設定済みです.

処理機はaddProcessorName 追加された順(getProcessorNamesが返す順番) で構築されます.

例外:
UnknownProcessorException - 指定された名前のProcessorが存在しなかった場合.
ArgumentsConflictException - 同じ名前で違う値の引数が指定されていた場合.
ProcessorException
関連項目:
addProcessorName(String), getProcessorNames()

addTarget

public void addTarget(String arg)
処理対象となるファイルを追加します.

関連項目:
getTargets()

addProcessorName

public void addProcessorName(String processorName)
処理を行う処理器を処理機名で指定して追加します. 同じ処理機名を複数回追加した場合,その処理機が追加された回数だけ実行されることになります.

関連項目:
getProcessorNames()

getTargets

public String[] getTargets()
処理対象のファイル一覧を返します.

関連項目:
addTarget(java.lang.String)

getDestination

public String getDestination()
処理結果の出力先を返します. 設定されていない場合は,現在のディレクトリを表す"."を返します.

関連項目:
setDestination(java.lang.String)

getProcessorCount

public int getProcessorCount()
現在設定されている処理器の数を返します.


getProcessorNames

public String[] getProcessorNames()
現在設定されている処理器の名前一覧を配列で返します. 返されるString配列には同じ文字列が含まれている場合があります.

関連項目:
addProcessorName(java.lang.String), getProcessors()

findArguments

public Argument[] findArguments(String keyPrefix)

引数に指定された名前で始まるArgumentの一覧を返します. 返されるArgumentはRydeenの実行時オプションで指定されたものです.

返されたArgumentに対して操作を行っても何も影響を与えません. 設定された値を変更したい場合はputArgument メソッドを呼び出します. また,返されるArgumentオブジェクトの getDescription メソッドは常にnullを返します.

引数がnullの場合,もしくは,引数に指定された名前で始まる Argumentが存在しない場合は長さ0の配列を返します.


getArgumentValue

public String getArgumentValue(String key)
指定された名前を持つArgumentの値を返します. 指定された名前のArgumentが存在しない場合はnullを返します.


hasArgument

public boolean hasArgument(String key)
指定された名前を持つArgumentが存在すればtrueを返し, 存在しなければfalseを返します. 引数がnullの場合,NullPointerExceptionが投げられます.


putArgument

public void putArgument(String key,
                        String value)
指定された名前のArgumentの値を更新します. keyがnullの場合はNullPointerExceptionが投げられます. valueがnullの場合は値がnullに設定されます.


setDestination

public void setDestination(String dest)
処理結果の出力先を設定します.

関連項目:
getDestination()


Copyright © 2010-2011 Rydeen Project. All Rights Reserved.