8. アノテーション定義支援ツール

Java EE より開発容易性の一環として、アノテーション が導入されます。アノテーション定義を使うことで、配備記述子によるXML編集の煩雑さは解消され、Java EEコンポーネントを簡単に作成できます。しかし、アノテーション定義は、数多く存在し、これらをまとめてソースコード編集すると生産効率が下がる場合があります。WebOTX Developer’s Studioアノテーションエディタは、アノテーション定義をGUI化することで、編集作業を簡略化します。
アノテーションエディタは以下の機能があります。
アノテーションの一覧表示・編集
Javaソースの持つアノテーションを一覧表示します。さらに、GUIでアノテーションの付与・更新・削除機能を提供します。
アノテーションの表示選択
用途別にアノテーションをカテゴリに分け、そのカテゴリ毎にビューに、表示する/しない を選択できる機能を提供します。この機能により、ユーザが表示するアノテーションを制御できるようになります。
アノテーションの検証
ある要素にアノテーションが付与できるかどうかの検証やアノテーションの属性などに入力される値の検証機能を提供します。

8.1. アノテーションの一覧表示・編集

8.1.1. 注釈プロパティー・ビューの表示

注釈プロパティー・ビューは以下の手順で開きます。
メニュー ウィンドウビューの表示 > その他... を選択すると、ビューの表示画面が表示されます。
ビューの表示画面で、JAX-WS 注釈プロパティー を選択して、OK をクリックします。


図8.1.1-1

注釈プロパティー・ビューが表示されます。


図8.1.1-2

エディタで選択されるJava要素によって、付与できるアノテーションを一覧表示します。
注釈プロパティー・ビューは以下のような画面です。


図8.1.1-3

各項目の説明を以下に示します。
表8.1.1-1
項番 項目 説明 備考
(1)
フィルター
クリックした場合、選択が必要・ダイアログを開く。
用途別にアノテーションをカテゴリに分け、そのカテゴリ毎にビューに、表示する/しない を選択できる機能を提供します。この機能により、ユーザが表示するアノテーションを制御できるようになります。
(2)
注釈
アノテーションの名前あるいはアノテーションの属性名を表示します。
(3)

アノテーション名の場合は該当アノテーションがJava要素に付与されるかどうかを示します。
アノテーション属性の場合は、該当属性の値を示します。
(1)アノテーション名の場合:
チェックボックスで設定します。
ONにした場合、該当アノテーションがJava要素に付与されます。
OFFにした場合、該当アノテーションがJava要素に付与されません。

(2)アノテーション属性の場合:
booleanの場合は、チェックボックスで、ONとOFFだけで設定できます。
列挙の場合は、コンボボックスリストで設定できます。
Classの場合は、テキストボックスまたは参照ボタンで編集できます。
配列の場合は、参照ボタンで開くダイアログで設定できます。
その以外は、テキストボックスで編集できます。
(4)
ボタン
アノテーションの属性を表示するかどうかを制御します。
をクリックして、該当アノテーションの属性を表示します。
をクリックして、該当アノテーションの属性を表示しません。
付与の対象となるJava要素は以下の型に分かれています。
表8.1.1-2
記号 説明
[T] Type
Java要素はクラス、インターフェース(アノテーションを含む)、あるいはenum(列挙型)であることを示します。
[C] Constructor
Java要素はコンストラクターであることを示します。
[M] Method
Java要素はメソッドであることを示します。
[F] Field
Java要素はフィールドであることを示します。
[Par] Parameter  
Java要素はパラメータであることを示します。
[A] AnnotationType  
Java要素はアノテーションタイプであることを示します。
[Pkg] Package  
Java要素はパッケージであることを示します。
アノテーションの付与できる対象はTarget属性としてアノテーション側で定義されています。エディタでJava要素にフォーカスをあてると、注釈プロパティー・ビューには、Targetの適合するアノテーションの一覧が表示され、編集することができます。

Caution
コンストラクターはMethodに含まれません。型はConstructorのみまたはMethodのみの場合、コンストラクターはサポートしません。型はConstructor、Method両方である場合、コンストラクターはサポートします。

8.1.2. アノテーションの一覧表示機能

Java要素の型によって、付与できるアノテーションを一覧表示する機能について説明します。
クラス(Type)に付与できるアノテーションの一覧表示は以下の画面の通りです。
付与対象がクラスまたはメソッドで、カテゴリが EJB である場合の画面表示を例に説明を行います。
付与対象がクラスの場合


図8.1.2-1

エディタでクラス名が選択された場合、javax.ejb.Statelessやjavax.ejb.StatefulなどTargetがTypeであるアノテーションが一覧表示されます。(TargetがMethodであるjavax.ejb.PostActivateやjavax.ejb.PrePassivateなどは、一覧には表示されません。)
付与対象がメソッドの場合
メソッドに付与できるEJBに所属するアノテーションの一覧表示は以下の画面の通りです。


図8.1.2-2

エディタでメソッド名が選択された場合、javax.ejb.PostActivateやjavax.ejb.PrePassivateなどTargetがMethodであるアノテーションが、ビューで表示されます。(前出の、TargetがTypeであるjavax.ejb.Statelessやjavax.ejb.Statefulなどは一覧には表示されません。 )
表8.1.2-1
選択された付与対象 カテゴリ 説明
クラス
プロジェクトのアノテーション表示選択により、選択された該当カテゴリのアノテーションを表示します。詳しくは8.2. アノテーションの表示選択を参照してください。
カテゴリ設定範囲内において、Target定義にクラスが含まれるアノテーションを表示します。
メソッド
カテゴリ設定範囲内において、Target定義にメソッドが含まれるアノテーションを表示します。
その他
カテゴリ設定範囲内において、Target定義に付与対象が含まれるアノテーションを表示します。

Memo
1.javax.ejb.TransactionAttributeやjavax.interceptor.InterceptorsなどTargetがType、Method両方であるアノテーションは、クラス名が選択された場合もメソッドが選択された場合も、一覧に表示されます。
2.アノテーションをTargetとは異なる対象に付与すると、エディタでエラーが発生します。詳しい情報は8.3. アノテーションの検証を参照してください。
3.各アノテーションのTargetは、8.4. サポートするアノテーションを参照してください。

8.1.3. アノテーションの新規追加機能

具体例として、javax.ejb.StatelessをJavaクラスへの、アノテーションの新規追加機能の使い方を説明します。
下図は、アノテーションを追加する前のエディタと注釈プロパティー・ビューの状態です。


図8.1.3-1

注釈プロパティー・ビューで、javax.ejb.StatelessアノテーションのをONに変更します。


図8.1.3-2

javax.ejb.StatelessアノテーションがクラスTestStatelessSessionBeanに付与されます。
下図は、javax.ejb.StatelessアノテーションがクラスTestStatelessSessionBeanに付与された後の画面です。


図8.1.3-3

エディタで、以下の変化をご確認ください。
(1) TestStatelessSessionBeanクラスの定義前で@Stateless()が追加されます。
(2) import javax.ejb.Stateless;句が追加されます。
(3) 注釈プロパティー・ビューでjavax.ejb.Statelessアノテーションの値がONになっています。

8.1.4. アノテーションの属性の変更機能

注釈プロパティー・ビューを使って、Java要素に付与されるアノテーションの属性を追加・更新・削除することができます。
以下は具体例として、javax.ejb.Statelessを変更する場合です。
下図は、属性変更の前のエディタと注釈プロパティー・ビュー状態です。


図8.1.4-1

8.1.4.1. 属性の追加

注釈プロパティー・ビューで、javax.ejb.Statelessアノテーションのdescription属性のにThe description of Stateless Annotationと、入力して、ENTER キーを押します。


図8.1.4.1-1

エディタで、@Statelessアノテーションにdescription属性が追加されます。
結果は、下図のとおりです。


図8.1.4.1-2

括弧が無い場合の手順
後ろに括弧が無いアノテーションに、注釈プロパティー・ビューで正しく属性を追加することはできません。
このような場合、アノテーション記述にエディタを用いて括弧を補うようにします。
詳細は、8.5.1.1. 注釈プロパティー・ビューで属性を追加できないをご覧ください。

8.1.4.2. 属性の変更


図8.1.4.2-1

注釈プロパティー・ビューでjavax.ejb.Statelessのdescription属性の値を "Modified It!" に変更して、ENTER キーを押すと、変更結果がエディタに反映されます。


図8.1.4.2-2

8.1.4.3. 属性の削除


図8.1.4.3-1

注釈プロパティー・ビューでjavax.ejb.Statelessのdescription属性の値を空白にして、ENTER キーを押すと、エディタで@Statelessアノテーションのdescription属性が""になります。


図8.1.4.3-2

8.1.5. アノテーションの削除機能

注釈プロパティー・ビューで、アノテーションを削除する機能です。
具体例として、javax.ejb.Stateless アノテーションの削除方法を説明します。
下図は、アノテーションを削除する前のエディタと注釈プロパティー・ビューの状態です。


図8.1.5-1

注釈プロパティー・ビューでjavax.ejb.StatelessアノテーションのをOFFにします。


図8.1.5-2

エディタで、@Statelessアノテーションが削除されます。


図8.1.5-3

Memo
削除されたアノテーションの定義クラスのimport句((1)の部分)は、他の箇所で利用していない場合、同時に削除されます。

8.2. アノテーションの表示選択

8.2.1. 機能説明

アノテーションの表示選択の使用方法について説明します。

8.2.2. 選択が必要・ダイアログの表示

注釈プロパティー・ビューの右上隅にある逆三角形のアイコン > フィルター... をクリックします。


図8.2.2-1

選択が必要・ダイアログが表示されます。


図8.2.2-2

選択が必要・ダイアログは以下のような画面です。


図8.2.2-3

各項目の説明を以下に示します。
表8.2.2-1
項番 項目 説明 備考
(1)
ダイアログの提示情報
「Select Annotation Categories to Filter」というメッセージが表示されます。

(2)
Java EE共通 チェックボックス
Java EE共通カテゴリに所属するアノテーションを注釈プロパティー・ビューで表示しないかどうかを指定します。
ONにした場合、注釈プロパティー・ビューで表示しません。
OFFにした場合、注釈プロパティー・ビューで表示します。
(3)
EJB チェックボックス
EJBカテゴリに所属するアノテーションを注釈プロパティー・ビューで表示しないかどうかを指定します。
(4)
JAXB チェックボックス
JAXB カテゴリに所属するアノテーションを注釈プロパティー・ビューで表示しないかどうかを指定します。
(5)
Portlet チェックボックス
Portlet カテゴリに所属するアノテーションを注釈プロパティー・ビューで表示しないかどうかを指定します。
(6)
JPA チェックボックス
JPA カテゴリに所属するアノテーションを注釈プロパティー・ビューで表示しないかどうかを指定します。
(7)
JAX-WS チェックボックス
JAX-WSカテゴリに所属するアノテーションを注釈プロパティー・ビューで表示しないかどうかを指定します。
(8)
すべて選択(S) ボタン
すべてのカテゴリを選択します。
(9)
選択をすべて解除(D)ボタン
すべてのカテゴリの選択を解除します。

(10)
OKボタン
カテゴリに所属するアノテーション表示・非表示の変更を適用します。

(11)
キャンセルボタン
カテゴリに所属するアノテーション表示・非表示の変更を適用しません。


Caution
全てのカテゴリにおいてJavaモジュールのバージョンは5.0以上でなければなりません。

8.2.3. 表示するカテゴリの選択

注釈プロパティー・ビューに表示するカテゴリを選択できます。 これにより、必要なアノテーションだけを表示でき、目的のアノテーションの探索が容易になります。

下図では、注釈プロパティー・ビューにアノテーションが表示されていません。


図8.2.3-1

ここで、EJBカテゴリをビューに表示するように、[選択が必要]ダイアログで設定します。

[選択が必要]ダイアログでは、ビューに表示しないカテゴリを指定します。 したがって、EJBカテゴリをビューに表示する場合は、EJBをOFFにします。


図8.2.3-2

エディタ内の、クラスを選択すると、クラスに付与できるEJBカテゴリのアノテーションが一覧表示されるようになります。


図8.2.3-3

他の四つのカテゴリに所属するアノテーションは表示されないことを、ご確認ください。

Caution
1.注釈プロパティー・ビューで表示されないアノテーションも、エディタで入力することは可能です。
2. エディタでアノテーションが正しく付与できない場合、8.3. アノテーションの検証をご覧ください。

8.3. アノテーションの検証

アノテーションを記述した際の、妥当性の検証機能について説明します。
妥当性は、付与する対象、指定する属性などについて判定されます。
各アノテーションの妥当な指定については、8.4. サポートするアノテーションを参照してください。

8.3.1. アノテーションの定義位置の検証機能

付与する対象の妥当性についての検証です。
以下は、メソッドには付与できない@Statefulアノテーションを、エディタで強制的に付与した際の、エラーの例です。 マウスをエラー発生箇所に置くと、関連するエラーメッセージが表示されます。


図8.3.1-1

8.3.2. アノテーションの属性名の検証機能

属性名の妥当性についての検証です。
クラスに付与される@Statefulアノテーションに "mappedName2"という、存在しない属性を設定しています。 マウスをエラー発生箇所に置くと、関連するエラーメッセージが表示されます。


図8.3.2-1

8.3.3. アノテーションの属性のタイプの検証機能

属性に指定した型の妥当性についての検証です。
@MessageDrivenアノテーションのactivationConfig属性に、期待する型とは異なる文字列型の値を設定すると、エディタでエラーが発生します。また、マウスをエラー発生箇所に置くと、関連するエラーメッセージが表示されます。


図8.3.3-1

8.4. サポートするアノテーション

各アノテーションが付与できる Target について説明します。 また、以下のアノテーションについては、これまでに説明した操作が機能しませんが、エディタからの入力は可能です。

8.4.1. Java EE共通 アノテーション

Java EE共通カテゴリに所属するアノテーションは以下の通りです。
表8.4.1-1
項番 パッケージ名 アノテーション名 Target
1
javax.annotation
Generated
[ALL]
2
javax.annotation
PostConstruct
[M]
3
javax.annotation
PreDestroy
[M]
4
javax.annotation
Resource
[F, M, T]
5
javax.annotation
Resources
[T]
6
javax.annotation
ManagedBean
[T]
7
javax.annotation.security
DeclareRoles
[T]
8
javax.annotation.security
DenyAll
[M]
9
javax.annotation.security
PermitAll
[M, T]
10
javax.annotation.security
RolesAllowed
[M, T]
11
javax.annotation.security
RunAs
[T]
12
javax.annotation.sql
DataSourceDefinition
[T]
13
javax.annotation.sql
DataSourceDefinitions
[T]
14
javax.ejb
EJB
[F, M, T]
15
javax.ejb
EJBs
[T]
16
javax.persistence
PersistenceContext
[F, M, T]
17
javax.persistence
PersistenceContexts
[T]
18
javax.persistence
PersistenceUnit
[F, M, T]
19
javax.persistence
PersistenceUnits
[T]

Memo
EJB(s)、PersistenceContext(s)とPersistenceUnit(s)の6つのアノテーションが他のパッケージからJava EE共通カテゴリに移動します。

8.4.2. EJBアノテーション

EJB カテゴリに所属するアノテーションは以下の通りです。
表8.4.2-1
項番 パッケージ名 アノテーション名 Target
1
javax.ejb
ActivationConfigProperty
[]
2
javax.ejb
ApplicationException
[T]
3
javax.ejb
Init
[M]
4
javax.ejb
Local
[T]
5
javax.ejb
LocalHome
[T]
6
javax.ejb
MessageDriven
[T]
7
javax.ejb
PostActivate
[M]
8
javax.ejb
PrePassivate
[M]
9
javax.ejb
Remote
[T]
10
javax.ejb
RemoteHome
[T]
11
javax.ejb
Remove
[M]
12
javax.ejb
Stateful
[T]
13
javax.ejb
Stateless
[T]
14
javax.ejb
Timeout
[M]
15
javax.ejb
TransactionAttribute
[M, T]
16
javax.ejb
TransactionManagement
[T]
17
javax.interceptor
AroundInvoke
[M]
18
javax.interceptor
ExcludeClassInterceptors
[M]
19
javax.interceptor
ExcludeDefaultInterceptors
[M, T]
20
javax.interceptor
Interceptors
[M, T]
21
javax.ejb
AccessTimeout
[M, T]
22
javax.ejb
AfterBegin
[M]
23
javax.ejb
AfterCompletion
[M]
24
javax.ejb
Asynchronous
[M, T]
25
javax.ejb
BeforeCompletion
[M]
26
javax.ejb
ConcurrencyManagement
[T]
27
javax.ejb
DependsOn
[T]
28
javax.ejb
LocalBean
[T]
29
javax.ejb
Lock
[M, T]
30
javax.ejb
Schedule
[M]
31
javax.ejb
Schedules
[M]
32
javax.ejb
Singleton
[T]
33
javax.ejb
Startup
[T]
34
javax.ejb
StatefulTimeout
[T]
35
javax.interceptor
AroundTimeout
[M]
36
javax.interceptor
Interceptor
[T]
37
javax.interceptor
InterceptorBinding
[A]

Memo
javax.ejbパッケージに置くEJBとEJBsアノテーションがJava EE共通カテゴリに移動します。

8.4.3. JPAアノテーション

JPA カテゴリに所属するアノテーションは以下の通りです。
表8.4.3-1
項番 パッケージ名 アノテーション名 Target
1
javax.persistence
AssociationOverride
[T,M,F]
2
javax.persistence
AssociationOverrides
[T,M,F]
3
javax.persistence
AttributeOverride
[T,M,F]
4
javax.persistence
AttributeOverrides
[T,M,F]
5
javax.persistence
Basic
[M,F]
6
javax.persistence
Column
[M,F]
7
javax.persistence
ColumnResult
[]
8
javax.persistence
DiscriminatorColumn
[T]
9
javax.persistence
DiscriminatorValue
[T]
10
javax.persistence
Embeddable
[T]
11
javax.persistence
Embedded
[M,F]
12
javax.persistence
EmbeddedId
[M,F]
13
javax.persistence
Entity
[T]
14
javax.persistence
EntityListeners
[T]
15
javax.persistence
EntityResult
[]
16
javax.persistence
Enumerated
[M,F]
17
javax.persistence
ExcludeDefaultListeners
[T]
18
javax.persistence
ExcludeSuperclassListeners
[T]
19
javax.persistence
FieldResult
[]
20
javax.persistence
GeneratedValue
[M,F]
21
javax.persistence
Id
[M,F]
22
javax.persistence
IdClass
[T]
23
javax.persistence
Inheritance
[T]
24
javax.persistence
JoinColumn
[M,F]
25
javax.persistence
JoinColumns
[M,F]
26
javax.persistence
JoinTable
[M,F]
27
javax.persistence
Lob
[M,F]
28
javax.persistence
ManyToMany
[M,F]
29
javax.persistence
ManyToOne
[M,F]
30
javax.persistence
MapKey
[M,F]
31
javax.persistence
MappedSuperclass
[T]
32
javax.persistence
NamedNativeQueries
[T]
33
javax.persistence
NamedNativeQuery
[T]
34
javax.persistence
NamedQueries
[T]
35
javax.persistence
NamedQuery
[T]
36
javax.persistence
OneToMany
[M,F]
37
javax.persistence
OneToOne
[M,F]
38
javax.persistence
OrderBy
[M,F]
39
javax.persistence
PersistenceProperty
[]
40
javax.persistence
PostLoad
[M]
41
javax.persistence
PostPersist
[M]
42
javax.persistence
PostRemove
[M]
43
javax.persistence
PostUpdate
[M]
44
javax.persistence
PrePersist
[M]
45
javax.persistence
PreRemove
[M]
46
javax.persistence
PreUpdate
[M]
47
javax.persistence
PrimaryKeyJoinColumn
[T,M,F]
48
javax.persistence
PrimaryKeyJoinColumns
[T,M,F]
49
javax.persistence
QueryHint
[]
50
javax.persistence
SecondaryTable
[T]
51
javax.persistence
SecondaryTables
[T]
52
javax.persistence
SequenceGenerator
[T,M,F]
53
javax.persistence
SqlResultSetMapping
[T]
54
javax.persistence
SqlResultSetMappings
[T]
55
javax.persistence
Table
[T]
56
javax.persistence
TableGenerator
[T,M,F]
57
javax.persistence
Temporal
[M,F]
58
javax.persistence
Transient
[M,F]
59
javax.persistence
UniqueConstraint
[]
60
javax.persistence
Version
[M,F]
61
javax.persistence
Access
[T,M,F]
62
javax.persistence
Cacheable
[T]
63
javax.persistence
CollectionTable
[M,F]
64
javax.persistence
ElementCollection
[M,F]
65
javax.persistence
MapKeyClass
[M,F]
66
javax.persistence
MapKeyColumn
[M,F]
67
javax.persistence
MapKeyEnumerated
[M,F]
68
javax.persistence
MapKeyJoinColumn
[M,F]
69
javax.persistence
MapKeyJoinColumns
[M,F]
70
javax.persistence
MapKeyTemporal
[M,F]
71
javax.persistence
MapsId
[M,F]
72
javax.persistence
OrderColumn
[M,F]
73
javax.persistence.metamodel
StaticMetamodel
[T]

Memo
javax.persistenceパッケージに置くPersistenceContext(s)とPersistenceUnit(s)アノテーションがJava EE共通カテゴリに移動します。

8.4.4. JAXBアノテーション

JAXB カテゴリに所属するアノテーションは以下の通りです。
表8.4.4-1
項番 パッケージ名 アノテーション名 Target
1
javax.xml.bind.annotation
XmlAccessorOrder
[Pkg, T]
2
javax.xml.bind.annotation
XmlAccessorType
[Pkg, T]
3
javax.xml.bind.annotation
XmlAnyAttribute
[F, M]
4
javax.xml.bind.annotation
XmlAnyElement
[F, M]
5
javax.xml.bind.annotation
XmlAttachmentRef
[F, M, Par]
6
javax.xml.bind.annotation
XmlAttribute
[F, M]
7
javax.xml.bind.annotation
XmlElement
[F, M]
8
javax.xml.bind.annotation
XmlElementDecl
[M]
9
javax.xml.bind.annotation
XmlElementRef
[F, M]
10
javax.xml.bind.annotation
XmlElementRefs
[F, M]
11
javax.xml.bind.annotation
XmlElements
[F, M]
12
javax.xml.bind.annotation
XmlElementWrapper
[F, M]
13
javax.xml.bind.annotation
XmlEnum
[T]
14
javax.xml.bind.annotation
XmlEnumValue
[F]
15
javax.xml.bind.annotation
XmlID
[F, M]
16
javax.xml.bind.annotation
XmlIDREF
[F, M]
17
javax.xml.bind.annotation
XmlInlineBinaryData
[F, M, T]
18
javax.xml.bind.annotation
XmlList
[F, M, Par]
19
javax.xml.bind.annotation
XmlMimeType
[F, M, Par]
20
javax.xml.bind.annotation
XmlMixed
[F, M]
21
javax.xml.bind.annotation
XmlNs
[]
22
javax.xml.bind.annotation
XmlRegistry
[T]
23
javax.xml.bind.annotation
XmlRootElement
[T]
24
javax.xml.bind.annotation
XmlSchema
[Pkg]
25
javax.xml.bind.annotation
XmlSchemaType
[F, M, Pkg]
26
javax.xml.bind.annotation
XmlSchemaTypes
[Pkg]
27
javax.xml.bind.annotation
XmlSeeAlso
[T]
28
javax.xml.bind.annotation
XmlTransient
[F, M]
29
javax.xml.bind.annotation
XmlType
[T]
30
javax.xml.bind.annotation
XmlValue
[F, M]
31
javax.xml.bind.annotation.adapters
XmlJavaTypeAdapter
[F, M, Pkg, Par, T]
32
javax.xml.bind.annotation.adapters
XmlJavaTypeAdapters
[Pkg]

8.4.5. JAX-WSアノテーション

JAX-WS カテゴリに所属するアノテーションは以下の通りです。
表8.4.5-1
項番 パッケージ名 アノテーション名 Target
1
javax.jws
WebService
[T]
2
javax.jws
WebMethod
[M]
3
javax.jws
WebParam
[Par]
4
javax.jws
WebResult
[M]
5
javax.jws
HandlerChain
[T,M,F]
6
javax.jws
Oneway
[M]
7
javax.jws.soap
SOAPBinding
[T,M]
8
javax.xml.ws
WebServiceProvider
[T]
9
javax.xml.ws
WebServiceClient
[T]
10
javax.xml.ws
WebServiceRef
[T,M,F]
11
javax.xml.ws
WebServiceRefs
[T]
12
javax.xml.ws
ServiceMode
[T]
13
javax.xml.ws
WebFault
[T]
14
javax.xml.ws
BindingType
[T]
15
javax.xml.ws
RequestWrapper
[M]
16
javax.xml.ws
ResponseWrapper
[M]
17
javax.xml.ws
WebEndpoint
[M]
18
javax.xml.ws
RespectBinding
[T,M,F]
19
javax.xml.ws.soap
Addressing
[T,M,F]
20
javax.xml.ws.soap
MTOM
[T,M,F]
21
javax.xml.ws
FaultAction
[M]
22
javax.xml.ws
Action
[M]
23
javax.xml.ws.spi
WebServiceFeatureAnnotation
[A]
24
com.nec.webotx.webservice.xml.ws.api
FeatureConstructor
[C]
25
com.nec.webotx.webservice.xml.ws.api.server
InstanceResolverAnnotation
[A]
26
com.nec.webotx.webservice.xml.ws.developer
MemberSubmissionAddressing
[T,M,F]
27
com.nec.webotx.webservice.xml.ws.developer.servlet
HttpSessionScope
[T]

Caution
1. javax.jws.soapパッケージに置くInitParam、SOAPMessageHandlerとSOAPMessageHandlersの3つのアノテーションがJAX-WSでは未サポートのアノテーションのため、サポートしません。
2. com.nec.webotx.webservice.xml.ws.developer.Statefulは、javax.ejb.Statefulとクラス名衝突が発生しまった原因で、現時点でサポートしません。
3. FeatureConstructorはコンストラクターで表示されません。

8.4.6. Portletアノテーション

Portlet カテゴリに所属するアノテーションは以下の通りです。
表8.4.6-1
項番 パッケージ名 アノテーション名 Target
1
javax.portlet
ProcessAction
[M]
2
javax.portlet
ProcessEvent
[M]
3
javax.portlet
RenderMode
[M]

8.4.7. JAX-RSアノテーション

Caution
JAX-RSアノテーションはV9.2からサポートします。

JAX-RS カテゴリに所属するアノテーションは以下の通りです。
表8.4.7-1
項番 パッケージ名 アノテーション名 Target
1
javax.ws.rs
Consumes
[T,M]
2
javax.ws.rs
Produces
[T,M]
3
javax.ws.rs
GET
[M]
4
javax.ws.rs
POST
[M]
5
javax.ws.rs
PUT
[M]
6
javax.ws.rs
DELETE
[M]
7
javax.ws.rs
HEAD
[M]
8
javax.ws.rs
ApplicationPath
[T]
9
javax.ws.rs
Path
[T,M]
10
javax.ws.rs
PathParam
[Par,M,F]
11
javax.ws.rs
QueryParam
[Par,M,F]
12
javax.ws.rs
FormParam
[Par,M,F]
13
javax.ws.rs
MatrixParam
[Par,M,F]
14
javax.ws.rs
CookieParam
[Par,M,F]
15
javax.ws.rs
HeaderParam
[Par,M,F]
16
javax.ws.rs
Encoded
[Par,M,F,C,T]
17
javax.ws.rs
DefaultValue
[Par,M,F]
18
javax.ws.rs
HttpMethod
[A]
19
javax.ws.rs.core
Context
[Par,M,F]
20
javax.ws.rs.ext
Provider
[T]
21
javax.ws.rs
OPTIONS
[M]

8.4.8. Servletアノテーション

Caution
ServletアノテーションはV9.2からサポートします。

Servlet カテゴリに所属するアノテーションは以下の通りです。
表8.4.8-1
項番 パッケージ名 アノテーション名 Target
1
javax.servlet.annotation
ServletSecurity
[T]
2
javax.servlet.annotation
WebFilter
[T]
3
javax.servlet.annotation
WebInitParam
[T]
4
javax.servlet.annotation
MultipartConfig
[T]
5
javax.servlet.annotation
WebServlet
[T]
6
javax.servlet.annotation
HttpConstraint
[]
7
javax.servlet.annotation
HandlesTypes
[T]
8
javax.servlet.annotation
WebListener
[T]
9
javax.servlet.annotation
HttpMethodConstraint
[]

8.4.9. JSFアノテーション

Caution
JSFはアノテーションV9.2からサポートします。

JSF カテゴリに所属するアノテーションは以下の通りです。
表8.4.9-1
項番 パッケージ名 アノテーション名 Target
1
javax.faces.component
FacesComponent
[T]
2
javax.faces.component.behavior
FacesBehavior
[T]
3
javax.faces.validator
FacesValidator
[T]
4
javax.faces.event
ListenerFor
[T]
5
javax.faces.event
ListenersFor
[T]
6
javax.faces.application
ResourceDependency
[T]
7
javax.faces.application
ResourceDependencies
[T]
8
javax.faces.render
FacesBehaviorRenderer
[T]
9
javax.faces.render
FacesRenderer
[T]
10
javax.faces.convert
FacesConverter
[T]
11
javax.faces.event
NamedEvent
[T]
12
javax.faces.bean
RequestScoped
[T]
13
javax.faces.bean
ApplicationScoped
[T]
14
javax.faces.bean
NoneScoped
[T]
15
javax.faces.bean
SessionScoped
[T]
16
javax.faces.bean
ReferencedBean
[T]
17
javax.faces.bean
ManagedProperty
[F]
18
javax.faces.bean
ViewScoped
[T]
19
javax.faces.bean
ManagedBean
[T]
20
javax.faces.bean
CustomScoped
[T]

8.4.10. CDIアノテーション

Caution
CDIアノテーションはV9.2からサポートします。

CDI カテゴリに所属するアノテーションは以下の通りです。
表8.4.10-1
項番 パッケージ名 アノテーション名 Target
1
javax.decorator
Decorator
[T]
2
javax.decorator
Delegate
[F,Par]
3
javax.enterprise.context
ApplicationScoped
[T,M,F]
4
javax.enterprise.context
ConversationScoped
[T,M,F]
5
javax.enterprise.context
Dependent
[M,T,F]
6
javax.enterprise.context
NormalScope
[A]
7
javax.enterprise.context
RequestScoped
[T,M,F]
8
javax.enterprise.context
SessionScoped
[T,M,F]
9
javax.enterprise.event
Observes
[Par]
10
javax.enterprise.inject
Alternative
[T,M,F]
11
javax.enterprise.inject
Any
[T,M,F,Par]
12
javax.enterprise.inject
Default
[T,M,Par,F]
13
javax.enterprise.inject
Disposes
[Par]
14
javax.enterprise.inject
Model
[T,M,F]
15
javax.enterprise.inject
New
[F,Par,M,T]
16
javax.enterprise.inject
Produces
[M,F]
17
javax.enterprise.inject
Specializes
[T,M]
18
javax.enterprise.inject
Stereotype
[A]
19
javax.enterprise.inject
Typed
[F,M,T]
20
javax.enterprise.util
Nonbinding
[M]
21
javax.inject
Inject
[M,C,F]
22
javax.inject
Named
[]
23
javax.inject
Qualifier
[A]
24
javax.inject
Scope
[A]
25
javax.inject
Singleton
[]

8.4.11. Bean Validationアノテーション

Caution
Bean ValidationアノテーションはV9.2からサポートします。

Bean Validation カテゴリに所属するアノテーションは以下の通りです。
表8.4.11-1
項番 パッケージ名 アノテーション名 Target
1
javax.validation
Constraint
[A]
2
javax.validation
GroupSequence
[T]
3
javax.validation
OverridesAttribute
[M]
4
javax.validation
ReportAsSingleViolation
[A]
5
javax.validation
Valid
[M,F,C,Par]
6
javax.validation.constraints
AssertFalse
[M,F,A,C,Par]
7
javax.validation.constraints
AssertTrue
[M,F,A,C,Par]
8
javax.validation.constraints
DecimalMax
[M,F,A,C,Par]
9
javax.validation.constraints
DecimalMin
[M,F,A,C,Par]
10
javax.validation.constraints
Digits
[M,F,A,C,Par]
11
javax.validation.constraints
Future
[M,F,A,C,Par]
12
javax.validation.constraints
Max
[M,F,A,C,Par]
13
javax.validation.constraints
Min
[M,F,A,C,Par]
14
javax.validation.constraints
NotNull
[M,F,A,C,Par]
15
javax.validation.constraints
Null
[M,F,A,C,Par]
16
javax.validation.constraints
Past
[M,F,A,C,Par]
17
javax.validation.constraints
Pattern
[M,F,A,C,Par]
18
javax.validation.constraints
Size
[M,F,A,C,Par]

8.4.12. Targetが限定されたアノテーション

次のアノテーションは、付与できるTargetが、以下のように限定されています。
表8.4.12-1
アノテーション名 カテゴリ Target
javax.ejb.ActivationConfigProperty
EJB
MessageDrivenアノテーションのactivationConfig属性の値。
javax.persistence.ColumnResult
JPA
SqlResultSetMappingアノテーションのcolumns属性の値。
javax.persistence.EntityResult
JPA
SqlResultSetMappingアノテーションのentities属性の値。
javax.persistence.FieldResult
JPA
EntityResultアノテーションのfields属性の値。
javax.persistence.PersistenceProperty
JPA
PersistenceContextアノテーションのproperties属性の値。
javax.persistence.QueryHint
JPA
NamedQueryとNamedNativeQueryアノテーションのhints属性の値。
javax.persistence.UniqueConstraint
JPA
Table、SecondaryTable、JoinTable、TableGeneratorアノテーションのuniqueConstraints属性の値。
javax.xml.bind.annotation.XmlNs
JAXB
XmlSchemaのxmlns属性の値。

8.5. 注意制限事項

8.5.1. 注意事項

8.5.1.1. 注釈プロパティー・ビューで属性を追加できない

後ろに括弧が無いアノテーションに、注釈プロパティー・ビューで正しく属性を追加することはできません。
この問題は、アノテーション記述にエディタを用いて括弧を補うことで回避可能です。

例えば、下図の @Statelessアノテーションの後ろには括弧が有りません。
この状態で、注釈プロパティー・ビューで、javax.ejb.Statelessアノテーションの description属性の欄に "test description without kakko" を入力して、ENTER キーを押します。


図8.5.1.1-1

入力された値は正しくJavaソースの@Statelessアノテーションに反映されません。


図8.5.1.1-2

なお、注釈プロパティー・ビューでアノテーションを付与する場合、アノテーションには自動的に括弧が追加されます。
括弧が生成されない例
WebOTX DeveloperのEJB 生成ウィザードで自動的に付与されるアノテーションで、以下の5つには括弧が生成されません。 エディタで独自にアノテーションを記述する場合には、括弧まで記述するようご注意ください。

8.5.2. 制限事項

特にありません。