All Packages  Class Hierarchy  This Package  Previous  Next  Index
  Class epp.TypeNameTable
java.lang.Object
   |
   +----epp.TypeNameTable
  -  public class TypeNameTable
  
-  extends Object
  
クラス TypeNameTable は、「型の名前」を、完全限定名(fully qualified name)に
変換します。.
このクラスが扱う「型の名前」とは、 "(name ...)" の形をした Tree です。
配列型のように、構造を持った型は、扱いません。
変換は、次のルールにしたがって行なわれます。
-  "int", "char" などの組み込み型の名前は、そのまま返されます。
 -  "java.util.Hashtable" のように、 "." を含んでいる名前はすでに
完全限定名なので、そのまま返されます。そのクラスが実際に存在するかどうかは
チェックされません。
 -  "Object" や "Tree" のような単純名(simple name)は、
Java の言語仕様にしたがって
それが表すクラスの完全限定名に変換されます。
見つからなかったり、一意に決まらない場合は、 EppUserError が
throw されます。
 
このテーブルのインスタンスは、動的変数 :typeNameTable に入れられています。
ただし、 Phase2 にならないとこのテーブルを利用することはできません。
(Java の言語仕様上、 Phase1 では、完全限定名への変換は不可能です。
カレントパッケージ中にどのようなクラスが存在するかに影響されるからです。)
完全限定名への変換は、処理中のファイルの pacakge 宣言、 import 宣言、
全ソースファイル中で定義されているクラス名、
CLASSPATH でアクセスできるクラス名を参照することによって、行なわれます。
  
  -  
	TypeNameTable(Tree)
   -  引数として、 CompilationUnit の tree を受け取り、
TypeNameTable を作って返します。.
 
  
  -  
	doesClassExist(Tree)
   -  完全限定名で表されるクラスが、実際に存在してアクセス可能ならば true 、
そうでないなら false を返します。.
  
 -  
	isSamePackage(Tree)
   -  現在処理中のパッケージと、 fullName が属するパッケージが同じなら
true 、そうでないなら false を返します。.
  
 -  
	nameToFullName(Tree)
   -  型名の Tree を 完全限定名を表す Tree に変換します。.
  
 -  
	nameToFullNameSymbol(Tree)
   -  型名の Tree を 完全限定名を表す Symbol に変換します。.
 
  
TypeNameTable
 public TypeNameTable(Tree tree)
  -  引数として、 CompilationUnit の tree を受け取り、
TypeNameTable を作って返します。.
 
  
nameToFullNameSymbol
 public Symbol nameToFullNameSymbol(Tree tree)
  -  型名の Tree を 完全限定名を表す Symbol に変換します。.
 
nameToFullName
 public Tree nameToFullName(Tree tree)
  -  型名の Tree を 完全限定名を表す Tree に変換します。.
 
doesClassExist
 public boolean doesClassExist(Tree fullName)
  -  完全限定名で表されるクラスが、実際に存在してアクセス可能ならば true 、
そうでないなら false を返します。.
このメソッドは、 nameToFullName と Type#resolveAmbiguousName から
呼ばれます。
  
    -  See Also:
    
 -  nameToFullName, resolveAmbiguousName
  
 
 
 
isSamePackage
 public boolean isSamePackage(Tree fullName)
  -  現在処理中のパッケージと、 fullName が属するパッケージが同じなら
true 、そうでないなら false を返します。.
 
All Packages  Class Hierarchy  This Package  Previous  Next  Index