-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以降のゲッターインジェクションに対応できるようになりました