All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.aspectj.org.eclipse.jdt.core.IMember Maven / Gradle / Ivy

Go to download

AspectJ tools most notably contains the AspectJ compiler (AJC). AJC applies aspects to Java classes during compilation, fully replacing Javac for plain Java classes and also compiling native AspectJ or annotation-based @AspectJ syntax. Furthermore, AJC can weave aspects into existing class files in a post-compile binary weaving step. This library is a superset of AspectJ weaver and hence also of AspectJ runtime.

There is a newer version: 1.9.22.1
Show newest version
/*******************************************************************************
 * Copyright (c) 2000, 2017 IBM Corporation and others.
 *
 * 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/
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.aspectj.org.eclipse.jdt.core;

/**
 * Common protocol for Java elements that can be members of types.
 * This set consists of {@link IType}, {@link IMethod},
 * {@link IField}, {@link IInitializer} and {@link IModuleDescription}.
 * 

* The children are listed in the order in which they appear in the source or class file. *

* * @noimplement This interface is not intended to be implemented by clients. */ public interface IMember extends IJavaElement, ISourceReference, ISourceManipulation, IParent { /** * Returns the categories defined by this member's Javadoc. A category is the identifier * following the tag @category in the member's Javadoc. * Returns an empty array if no category is defined in this member's Javadoc. * * @return the categories defined by this member's doc * @exception JavaModelException if this element does not exist or if an * exception occurs while accessing its corresponding resource. * @since 3.2 */ String[] getCategories() throws JavaModelException; /** * Returns the class file in which this member is declared, or null * if this member is not declared in a class file (for example, a source type). * This is a handle-only method. * * @return the class file in which this member is declared, or null * if this member is not declared in a class file (for example, a source type) */ IClassFile getClassFile(); /** * Returns the compilation unit in which this member is declared, or null * if this member is not declared in a compilation unit (for example, a binary type). * This is a handle-only method. * * @return the compilation unit in which this member is declared, or null * if this member is not declared in a compilation unit (for example, a binary type) */ ICompilationUnit getCompilationUnit(); /** * Returns the type in which this member is declared, or null * if this member is not declared in a type (for example, a top-level type). * This is a handle-only method. * * @return the type in which this member is declared, or null * if this member is not declared in a type (for example, a top-level type) */ IType getDeclaringType(); /** * Returns the modifier flags for this member. The flags can be examined using class * Flags. *

* For {@linkplain #isBinary() binary} members, flags from the class file * as well as derived flags {@link Flags#AccAnnotationDefault} and {@link Flags#AccDefaultMethod} are included. *

*

* For source members, only flags as indicated in the source are returned. Thus if an interface * defines a method void myMethod();, the flags don't include the * 'public' flag. Source flags include {@link Flags#AccAnnotationDefault} as well. *

* * @exception JavaModelException if this element does not exist or if an * exception occurs while accessing its corresponding resource. * @return the modifier flags for this member * @see Flags */ int getFlags() throws JavaModelException; /** * Returns the Javadoc range if this element is from source or if this element * is a binary element with an attached source, null otherwise. * *

If this element is from source, the javadoc range is * extracted from the corresponding source.

*

If this element is from a binary, the javadoc is extracted from the * attached source if present.

*

If this element's openable is not consistent, then null is returned.

* * @exception JavaModelException if this element does not exist or if an * exception occurs while accessing its corresponding resource. * @return a source range corresponding to the javadoc source or null * if no source is available, this element has no javadoc comment or * this element's openable is not consistent * @see IOpenable#isConsistent() * @since 3.2 */ ISourceRange getJavadocRange() throws JavaModelException; /** * Returns the position relative to the order this member is defined in the source. * Numbering starts at 1 (thus the first occurrence is occurrence 1, not occurrence 0). *

* Two members m1 and m2 that are equal (e.g. 2 fields with the same name in * the same type) can be distinguished using their occurrence counts. If member * m1 appears first in the source, it will have an occurrence count of 1. If member * m2 appears right after member m1, it will have an occurrence count of 2. *

* The occurrence count can be used to distinguish initializers inside a type * or anonymous types inside a method. *

* This is a handle-only method. The member may or may not be present. *

* * @return the position relative to the order this member is defined in the source * @since 3.2 */ int getOccurrenceCount(); /** * Returns the Java type root in which this member is declared. * This is a handle-only method. * * @return the Java type root in which this member is declared. * @since 3.3 */ ITypeRoot getTypeRoot(); /** * Returns the local or anonymous type declared in this source member with the given simple name and/or * with the specified position relative to the order they are defined in the source. * The name is empty if it is an anonymous type. * Numbering starts at 1 (thus the first occurrence is occurrence 1, not occurrence 0). * This is a handle-only method. The type may or may not exist. * Throws a RuntimeException if this member is not a source member. * * @param name the given simple name * @param occurrenceCount the specified position * @return the type with the given name and/or with the specified position relative to the order they are defined in the source * @since 3.0 */ IType getType(String name, int occurrenceCount); /** * Returns whether this member is from a class file. * This is a handle-only method. * * @return true if from a class file, and false if * from a compilation unit */ boolean isBinary(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy