org.oklab.compiler.nametable
クラス FieldManager

java.lang.Object
  上位を拡張 org.oklab.compiler.nametable.FieldManager
すべての実装されたインタフェース:
IntermediateLangManager

public class FieldManager
extends java.lang.Object
implements IntermediateLangManager

Fieldを管理するクラス. このクラスがフィールド情報の生成からクラスファイルへの出力まで管理するので ユーザは直接Fieldクラスを意識することなく実装が出来る.

導入されたバージョン:
1.0
バージョン:
1.01
作成者:
Satoshi Okita satoshiokita@gmail.com
関連項目:
Field

フィールドの概要
private  java.util.Map<java.lang.String,Field> fields
           
private static FieldManager manager
           
 
コンストラクタの概要
private FieldManager()
           
 
メソッドの概要
(package private)  Variable createReference(Node node, java.lang.String curentIdentifer)
          このクラスにフィールド情報が存在する場合は、その情報を返し存在しない場合は、 フィールド情報の参照インスタンスを作成する.
 void emitCode(java.io.DataOutputStream classfile)
          バイトコードを出力する.
static FieldManager getInstance()
          唯一のインスタンスを取得する.
 void init()
          初期化.
 void put(int type, java.lang.String name)
          フィールドマネージャへフィールドを登録する.
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

manager

private static FieldManager manager

fields

private java.util.Map<java.lang.String,Field> fields
コンストラクタの詳細

FieldManager

private FieldManager()
メソッドの詳細

init

public void init()
初期化.

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

getInstance

public static FieldManager getInstance()
唯一のインスタンスを取得する.

戻り値:
FieldManagerオブジェクト.

put

public void put(int type,
                java.lang.String name)
         throws CompileError
フィールドマネージャへフィールドを登録する.

パラメータ:
type - フィールドの型.
name - フィールドの名前.
例外:
CompileError - 登録に失敗した時に発生する.

emitCode

public void emitCode(java.io.DataOutputStream classfile)
              throws java.io.IOException
バイトコードを出力する.

パラメータ:
classfile - 出力先ファイル.
例外:
CompileError - 出力に失敗した時に発生する.
java.io.IOException

createReference

Variable createReference(Node node,
                         java.lang.String curentIdentifer)
このクラスにフィールド情報が存在する場合は、その情報を返し存在しない場合は、 フィールド情報の参照インスタンスを作成する.

パラメータ:
node - 親ノード.
curentIdentifer - 識別子.
戻り値:
引数がnullの場合やフィールドプールにデータがない場合はnullを返す.