-RTTIのリファクタ

他のプラグインプロジェクトでもRTTIを使えるように、RTTIのコードを整理しました。プロパティの判定等、今まで若干手を抜いていたところをきちんとしました。新インターフェイスは以下のとおりです。

public interface IRtti extends IAdaptable, Serializable {
  public IType getType();
  public RttiLoader getRttiLoader();
  public boolean isInterface();
  public boolean isFinal();
  public boolean isAssignableFrom(IRtti testRtti);
  public String getQualifiedName();
  public String getShortName();
  public IRtti getInterfaces();
  public IRtti getSuperClass();
  public IRttiFieldDescriptor getField(
              String field, boolean staticAccess);
  public IRttiMethodDesctiptor getConstructor(IRtti args);
  public IRttiMethodDesctiptor getConstructors();
  public IRttiMethodDesctiptor getMethod(
              String name, IRtti args, boolean staticAccess);
  public IRttiMethodDesctiptor getMethods(Pattern pattern);
  public IRttiPropertyDescriptor getProperty(String name);
  public IRttiPropertyDescriptor getProperties();
}
public interface IRttiFieldDescriptor
    extends IAdaptable, Serializable {
  public boolean isFinal();
  public boolean isStatic();
  public IRtti getParent();
  public IRtti getType();
  public String getName();
  public IRtti getValue();
  public void setValue(IRtti value);
}
public interface IRttiMethodDesctiptor
    extends Serializable, Comparable {
  public IRtti getParent();
  public String getMethodName();
  public IRtti getArgs();
  public IRtti getReturnType();
  public boolean isFinal();
  public boolean isStatic();
  public IRtti getValues();
  public void setValues(IRtti[] values);
}
public interface IRttiPropertyDescriptor
    extends IAdaptable, Serializable, Comparable {
  public IRtti getParent();
  public IRtti getType();
  public String getName();
  public IRtti getValue();
  public void setValue(IRtti value);
  public boolean isWritable();
  public boolean isReadable(); 
}
  • [新規] RTTIで従来のプロパティセッター一覧の取得に加え、プロパティゲッター一覧の取得ができるようになりました。これで、2.1以降のゲッターインジェクションに対応できるようになりました