##### Coverage Report - org.seasar.cubby.spi.beans.Attribute

Classes in this File | Line Coverage | Branch Coverage | Complexity
Attribute |
N/A | N/A
N/A | N/A
| 1.0;1

1 |  |
     /*
2 |  |
      * Copyright 2004-2009 the Seasar Foundation and the Others.
3 |  |
      *
4 |  |
      * Licensed under the Apache License, Version 2.0 (the "License");
5 |  |
      * you may not use this file except in compliance with the License.
6 |  |
      * You may obtain a copy of the License at
7 |  |
      *
8 |  |
      *     http://www.apache.org/licenses/LICENSE-2.0
9 |  |
      *
10 |  |
      * Unless required by applicable law or agreed to in writing, software
11 |  |
      * distributed under the License is distributed on an "AS IS" BASIS,
12 |  |
      * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
13 |  |
      * either express or implied. See the License for the specific language
14 |  |
      * governing permissions and limitations under the License.
15 |  |
      */
16 |  |
     package org.seasar.cubby.spi.beans;
17 |  |
18 |  |
     import java.lang.annotation.Annotation;
19 |  |
20 |  |
     /**
21 |  |
      * オブジェクトの属性を扱うためのインターフェイスです。
22 |  |
      *
23 |  |
      * @author baba
24 |  |
      */
25 |  |
     public interface Attribute {
26 |  |
27 |  |
             /**
28 |  |
              * 属性名を返します。
29 |  |
              *
30 |  |
              * @return 属性名
31 |  |
              */
32 |  |
             String getName();
33 |  |
34 |  |
             /**
35 |  |
              * 属性の型を返します。
36 |  |
              *
37 |  |
              * @return 属性の型
38 |  |
              */
39 |  |
             Class<?> getType();
40 |  |
41 |  |
             /**
42 |  |
              * 属性の値が取得可能かどうかを返します。
43 |  |
              *
44 |  |
              * @return 属性の値が取得可能かどうか
45 |  |
              */
46 |  |
             boolean isReadable();
47 |  |
48 |  |
             /**
49 |  |
              * 属性の値が設定可能かどうかを返します。
50 |  |
              *
51 |  |
              * @return 属性の値が設定可能かどうか
52 |  |
              */
53 |  |
             boolean isWritable();
54 |  |
55 |  |
             /**
56 |  |
              * 属性の値を返します。
57 |  |
              *
58 |  |
              * @param target
59 |  |
              *            値を取得するオブジェクト
60 |  |
              * @return 属性の値
61 |  |
              * @throws IllegalAttributeException
62 |  |
              *             値の取得に失敗した場合。
63 |  |
              */
64 |  |
             Object getValue(Object target);
65 |  |
66 |  |
             /**
67 |  |
              * 属性に値を設定します。
68 |  |
              *
69 |  |
              * @param target
70 |  |
              *            値を設定するオブジェクト
71 |  |
              * @param value
72 |  |
              *            設定する値
73 |  |
              * @throws IllegalAttributeException
74 |  |
              *             値の設定に失敗した場合
75 |  |
              */
76 |  |
             void setValue(Object target, Object value);
77 |  |
78 |  |
             /**
79 |  |
              * この属性がパラメタ化された型の場合、その情報を返します。
80 |  |
              * <p>
81 |  |
              * この属性がパラメタ化された型でない場合は<code>null</code>を返します。
82 |  |
              * </p>
83 |  |
              *
84 |  |
              * @return この属性がパラメタ化された型の場合、その情報
85 |  |
              */
86 |  |
             ParameterizedClassDesc getParameterizedClassDesc();
87 |  |
88 |  |
             /**
89 |  |
              * 属性から指定されたアノテーションを取得します。
90 |  |
              *
91 |  |
              * @param <T>
92 |  |
              *            アノテーション
93 |  |
              * @param annotationClass
94 |  |
              *            取得するアノテーションの型
95 |  |
              * @return アノテーション
96 |  |
              */
97 |  |
             <T extends Annotation> T getAnnotation(Class<T> annotationClass);
98 |  |
99 |  |
             /**
100 |  |
              * 属性が指定されたアノテーションで修飾されているかを示します。
101 |  |
              *
102 |  |
              * @param annotationClass
103 |  |
              *            アノテーションの型
104 |  |
              * @return 属性が指定されたアノテーションで修飾されている場合は <code>true</code>、そうでない場合は
105 |  |
              *         <code>false</code>
106 |  |
              */
107 |  |
             boolean isAnnotationPresent(Class<? extends Annotation> annotationClass);
108 |  |
109 |  |
     }