/******************************************************************************* | |
* Copyright (c) 2009 by SAP AG, Walldorf. | |
* All rights reserved. This program and the accompanying materials | |
* are made available under the terms of the Eclipse Public License v1.0 | |
* which accompanies this distribution, and is available at | |
* http://www.eclipse.org/legal/epl-v10.html | |
* | |
* Contributors: | |
* SAP AG - initial API and implementation | |
*******************************************************************************/ | |
package org.eclipse.jst.ws.jaxws.utils.annotations; | |
import java.io.FileNotFoundException; | |
import org.eclipse.core.runtime.CoreException; | |
import org.eclipse.jdt.core.IJavaElement; | |
import org.eclipse.jface.text.BadLocationException; | |
import org.eclipse.text.edits.MalformedTreeException; | |
/** | |
* Base interface representing Annotation and the functionality, required by it. | |
* | |
* @author Plamen Pavlov | |
*/ | |
public interface IAnnotationBase<T extends IJavaElement> | |
{ | |
/** simple annotation type ID */ | |
public final int SIMPLE_ANNOTATION = 1; | |
/** single element annotation type ID */ | |
public final int SINGLE_ELEMENT_ANNOTATION = 2; | |
/** complex annotation type ID */ | |
public final int COMPLEX_ANNOTATION = 4; | |
/** | |
* @return - annotation name | |
*/ | |
public String getAnnotationName(); | |
/** | |
* Getting the TypeID of current Annotation | |
* | |
* @return Integer value, which represents the Annotation TypeID | |
*/ | |
public int getType(); | |
/** | |
* Adds current Annotation to specific IJavaElement. It is not possible to have IMember as parameter because there is ITypeParameter as parameter when add to TypParameter is executed. | |
* | |
* @param javaElement | |
* | |
* @throws NullPointerException if <tt>javaElement</tt> is null. | |
* @throws IllegalArgumentException in case <code>javaElement</code> is not of the correct type. Supported types are: IType, IMethod, IField, ITypeParameter. | |
* @throws AnnotationGeneratorException. | |
*/ | |
public void setAppliedElement(T javaElement) throws AnnotationGeneratorException; | |
/** | |
* Remove the current Annotation from the associated JavaElement. | |
* | |
* @throws BadLocationException | |
* @throws CoreException | |
* @throws AnnotationGeneratorException | |
* @throws FileNotFoundException | |
* @throws MalformedTreeException | |
*/ | |
public void remove() throws MalformedTreeException, FileNotFoundException, AnnotationGeneratorException, CoreException, BadLocationException; | |
/** | |
* Gets the information about location in the source code. | |
* | |
* @return ILocator | |
*/ | |
public ILocator getLocator(); | |
} |