blob: 0031ebb7681b0934374848c1713f426361937650 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006 Oracle Corporation.
* 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:
* Gerry Kessler/Oracle - initial API and implementation
*
********************************************************************************/
package org.eclipse.jst.jsf.metadataprocessors;
import java.util.List;
/**
* Interface describing the runtime type of a metadata enabled annotation.
* The type descriptor will load the feature adapters for a certain kind of
* feature that it supports. The type descriptor is registered by an extension point.
* <p><b>Provisional API - subject to change</b></p>
* @see IMetaDataEnabledFeature
* @see AbstractRootTypeDescriptor
* @see org.eclipse.jst.jsf.metadataprocessors.internal.AbstractMetaDataEnabledTypeFactory
* @see IType
*
* @author Gerry Kessler - Oracle
*
*/
public interface ITypeDescriptor {
/**
* @param type
* The IType must be set after the ITypeDescriptor is constructed
*/
public void setTypeExtension(IType type);
/**
* @return IType
* Must not be null
*/
public IType getTypeExtension();
/**
* @param processingFeature interface class
* @return List of <code>IMetaDataEnabledFeature</code>s that support the
* specified processingFeature interface.
*/
public List<IMetaDataEnabledFeature> getFeatureAdapters(Class processingFeature);
}