1 /******************************************************************************* 2 * Copyright (c) 2007, 2009 IBM Corporation and others. 3 * 4 * This program and the accompanying materials 5 * are made available under the terms of the Eclipse Public License 2.0 6 * which accompanies this distribution, and is available at 7 * https://www.eclipse.org/legal/epl-2.0/ 8 * 9 * SPDX-License-Identifier: EPL-2.0 10 * 11 * Contributors: 12 * IBM Corporation - initial API and implementation 13 *******************************************************************************/ 14 package org.eclipse.pde.api.tools.internal.provisional.model; 15 16 import org.eclipse.core.runtime.CoreException; 17 18 /** 19 * Handle to the structure of a class, interface, annotation, or enum. 20 * 21 * @since 1.0.0 22 */ 23 public interface IApiTypeRoot extends IApiElement { 24 25 /** 26 * Returns the fully qualified name of the type this storage represents. 27 * Package names are dot separated and type names are '$'-separated. 28 * 29 * @return fully qualified type name 30 */ getTypeName()31 public String getTypeName(); 32 33 /** 34 * Returns the structure contained in this type storage. I.e. access to the 35 * methods, fields, and member types in the associated type. 36 * 37 * @return structure of associated type or <code>null</code> if a problem 38 * occurs creating the new type 39 * @exception CoreException if unable to retrieve the structure 40 */ getStructure()41 public IApiType getStructure() throws CoreException; 42 43 /** 44 * Returns the API component this class file originated from or 45 * <code>null</code> if unknown. Note that the component will only be 46 * <code>null</code> in the case that a class file container was created 47 * without an owning component. 48 * 49 * @return API component or <code>null</code> if unknown 50 */ 51 @Override getApiComponent()52 public IApiComponent getApiComponent(); 53 54 } 55