/* *******************************************************************
 * Copyright (c) 2005 Contributors.
 * 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://eclipse.org/legal/epl-v10.html 
 *  
 * Contributors: 
 *   Adrian Colyer			Initial implementation
 * ******************************************************************/
package org.aspectj.lang.reflect;

import java.lang.reflect.Type;

A declare parents member defined inside an aspect
/** * A declare parents member defined inside an aspect */
public interface DeclareParents {
Returns:the declaring aspect
/** * @return the declaring aspect */
AjType getDeclaringType();
Returns:the target type pattern
/** * @return the target type pattern */
TypePattern getTargetTypesPattern();
Returns:true if this is a declare parents...extends member declaration
/** * @return true if this is a declare parents...extends member declaration */
boolean isExtends();
Returns:true if this is a declare parents...implements member declaration
/** * @return true if this is a declare parents...implements member declaration */
boolean isImplements();
Throws:
Returns:the set of types that the types matching getTargetTypesPattern are declared to implement or extend
/** * @return the set of types that the types matching getTargetTypesPattern are * declared to implement or extend * @throws ClassNotFoundException if any types cannot be found */
Type[] getParentTypes() throws ClassNotFoundException; }