クラス PropertyMeta


  • public class PropertyMeta
    extends Object
    プロパティのメタ情報です。
    作成者:
    T.TSUCHIE
    • コンストラクタの詳細

      • PropertyMeta

        public PropertyMeta​(String name,
                            Class<?> propertyType)
    • メソッドの詳細

      • getDeclaringClass

        public Class<?> getDeclaringClass()
        プロパティが定義されているクラス情報を取得します。
        戻り値:
        プロパティが定義されているクラス情報
        例外:
        IllegalStateException - クラス情報を取得するための情報が不足している場合。
      • isReadable

        public boolean isReadable()
        読み込み可能なプロパティか判定する。

        getterメソッドまたはpublicなフィールドが存在する場合

        戻り値:
        trueのとき読み込み可能。
      • isWritable

        public boolean isWritable()
        書込み可能なプロパティか判定する。

        setterメソッドまたはpublicなフィールドが存在する場合

        戻り値:
        trueのと書き込み可能。
      • setField

        public void setField​(Field field)
        プロパティに対するフィールドを設定します。
        パラメータ:
        field - フィールド(nullを許容します)
      • getField

        public Optional<Field> getField()
        プロパティに対するフィールドを情報を取得します。
        戻り値:
        プロパティに対するフィールド情報
      • setWriteMethod

        public void setWriteMethod​(Method method)
        プロパティに対するsetterメソッドを設定します。
        パラメータ:
        method - setterメソッド(nullを許容します)
      • getWriteMethod

        public Optional<Method> getWriteMethod()
        プロパティに対するsetterメソッドを取得します。
        戻り値:
        プロパティに対するsetterメソッド。
      • setReadMethod

        public void setReadMethod​(Method method)
        プロパティに対するgetterメソッドを設定します。
        パラメータ:
        method - getterメソッド(nullを許容します)
      • getReadMethod

        public Optional<Method> getReadMethod()
        プロパティに対するgetterメソッドを取得します。
        戻り値:
        プロパティに対するgetterメソッド
      • addAnnotation

        public void addAnnotation​(@NonNull
                                  @NonNull Class<? extends Annotation> annoClass,
                                  @NonNull
                                  @NonNull Annotation anno)
        アノテーションを追加します。
        パラメータ:
        annoClass - アノテーションのタイプ
        anno - 追加するアノテーション
      • hasAnnotation

        public <A extends Annotation> boolean hasAnnotation​(@NonNull
                                                            @NonNull Class<A> annoClass)
        指定したアノテーションを持つか判定します。
        型パラメータ:
        A - アノテーションのタイプ。
        パラメータ:
        annoClass - アノテーションのクラスタイプ。
        戻り値:
        trueの場合、アノテーションを持ちます。
      • getAnnotation

        public <A extends AnnotationOptional<A> getAnnotation​(Class<A> annoClass)
        タイプを指定して、アノテーションを取得する。
        型パラメータ:
        A - アノテーションのタイプ。
        パラメータ:
        annoClass - アノテーションのクラスタイプ。
        戻り値:
        存在しない場合、空を返します。
      • isColumn

        public boolean isColumn()
        カラム用のプロパティかどうか判定する。
        戻り値:
        カラム情報を持つときtrueを返す。
      • addEmbeddedablePropertyMeta

        public void addEmbeddedablePropertyMeta​(@NonNull
                                                @NonNull PropertyMeta embeddedablePropertyMeta)
        埋め込みプロパティ情報を追加する
        パラメータ:
        embeddedablePropertyMeta - 埋め込みプロパティ
      • hasParent

        public boolean hasParent()
        埋め込み用のクラスのプロパティかどか判定する。
        戻り値:
        埋め込み用のクラスのプロパティの場合trueを変す。
      • getParent

        public PropertyMeta getParent()
        埋め込み用のクラスのプロパティの親情報を取得する。
        戻り値:
        親情のプロパティ情報
        例外:
        NoSuchElementException - 親が存在しないときにスローされます。
      • getEmbeddedablePopertyMetaList

        public Collection<PropertyMeta> getEmbeddedablePopertyMetaList()
        埋め込みプロパティの一覧を取得する。
        戻り値:
      • isId

        public boolean isId()
        主キーかどうか判定する。

        アノテーション Idを付与されているかどうかで判定する。

        また、親がEmbeddedId を付与された埋め込みIDの場合は、子も主キーとなるためtrueを返す。

        戻り値:
        主キーの場合は true を返す。
      • isEmbedded

        public boolean isEmbedded()
        埋め込み用のプロパティかどうか判定する。

        埋め込みプロパティの子の場合は、falseを返す。

        戻り値:
        埋め込みの場合trueを返す。
      • setIdGeneratonType

        public void setIdGeneratonType​(GeneratedValue.GenerationType generationType)
        識別子の生成タイプを設定する。
        パラメータ:
        generationType - IDの生成タイプ
      • setIdGenerator

        public void setIdGenerator​(IdGenerator idGenerator)
        識別子の生成処理を設定する。
        パラメータ:
        idGenerator - 識別子の生成処理。
      • isTransient

        public boolean isTransient()
        永続化対象外かどうか判定する。
        戻り値:
        永続化対象外のとき true を返す。
      • isVersion

        public boolean isVersion()
        バージョンキーかどうか判定する。
        戻り値:
        バージョンキーのとき true を返す。
      • isLob

        public boolean isLob()
        SQLのカラムがLOB(CLOB/BLOC)かどうか判定する。

        アノテーション Lob が付与されているかで判定する。

        戻り値:
        LOBの場合はtrueを返す。
      • isCreatedAt

        public boolean isCreatedAt()
        作成日時用のプロパティがかどうか判定する。
        戻り値:
        作成日時用のプロパティのとき true を返す。
      • isCreatedBy

        public boolean isCreatedBy()
        作成者用のプロパティがかどうか判定する。
        戻り値:
        作成者用のプロパティのとき true を返す。
      • isModifiedAt

        public boolean isModifiedAt()
        修正日時用のプロパティがかどうか判定する。
        戻り値:
        修正日時用のプロパティのとき true を返す。
      • isModifiedBy

        public boolean isModifiedBy()
        修正者用のプロパティがかどうか判定する。
        戻り値:
        修正者用のプロパティのとき true を返す。
      • getName

        public String getName()
        プロパティ名
      • getPropertyType

        public Class<?> getPropertyType()
        プロパティタイプ
      • getColumnMeta

        public ColumnMeta getColumnMeta()
        カラムのメタ情報
      • setColumnMeta

        public void setColumnMeta​(ColumnMeta columnMeta)
        カラムのメタ情報
      • getValueType

        public ValueType<?> getValueType()
        値の変換処理
      • setValueType

        public void setValueType​(ValueType<?> valueType)
        値の変換処理