# Annotation Definition

###### Identifier:

org.eclipse.jst.ws.annotations.core.annotationDefinition

###### Since:

1.0

###### Description:

This extension point allows clients to contribute annotations <? extends java.lang.annotation.Annotation> which are in turn consumed by the UI.

###### Configuration Markup:

<!ELEMENT extension (annotation*)>

<!ATTLIST extension

point CDATA #REQUIRED

id CDATA #IMPLIED

name CDATA #IMPLIED

>

<!ELEMENT annotation (targetFilter*)>

<!ATTLIST annotation

class CDATA #REQUIRED

category IDREF #REQUIRED

name CDATA #REQUIRED

restrictedTo (CLASS_ONLY|INTERFACE_ONLY|ENUM_ONLY)

>

- class - the fully qualified annotation class name that extends `java.lang.annotation.Annotation`
- category - the id of a `annotationCategory`
- name - The simple name of the annotation class.
- restrictedTo - Used in addition to the java.lang.annotation.ElementType(s) that are specified in the value element of the @Target annotation on the contributed annotation to add further restrictions.

<!ELEMENT targetFilter EMPTY>

<!ATTLIST targetFilter

target (TYPE|FIELD|METHOD|PARAMETER|CONSTRUCTOR|LOCAL_VARIABLE|ANNOTATION_TYPE|PACKAGE)

>

- target - The annotations core automatically knows where to permit annotations as it inspects the contributed annotation and reads the @Target that has been defined for it. These filters are only used when there might be an extra restriction you want to add, for example, if version 2 of an annotation allows adding the annotation to a field, and then version 3 deprecates that usage, you can add a filter here to disallow the usage in the UI.

###### Examples:

The following is an example of an annotation definition contribution:

       <extension point="org.eclipse.jst.ws.annotations.core.annotationDefinition">
          <annotation
                category="jaxws.category"
                class="javax.jws.WebService"
                name="WebService">
          </annotation>
       </extension>

Copyright (c) 2009 Shane Clarke.
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which accompanies this distribution, and is available at https://www.eclipse.org/legal/epl-2.0/