/******************************************************************************* * 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: * Cameron Bateman/Oracle - initial API and implementation * ********************************************************************************/ package org.eclipse.jst.jsf.context.symbol; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EObject; import org.eclipse.jdt.core.IJavaElement; import org.eclipse.jdt.core.IType; /** * <!-- begin-user-doc --> * A generic descriptor for symbol information * * <p><b>Provisional API - subject to change</b></p> * <!-- end-user-doc --> * @author cbateman * @model */ public interface ITypeDescriptor extends EObject { /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ String copyright = "Copyright 2006 Oracle"; //$NON-NLS-1$ /** * Returns the value of the '<em><b>Properties</b></em>' reference list. * The list contents are of type {@link org.eclipse.jst.jsf.context.symbol.IPropertySymbol}. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Properties</em>' reference list isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> * @return the value of the '<em>Properties</em>' reference list. * @see org.eclipse.jst.jsf.context.symbol.SymbolPackage#getITypeDescriptor_Properties() * @model type="org.eclipse.jst.jsf.context.symbol.IPropertySymbol" volatile="true" * @generated */ EList getProperties(); /** * Returns the value of the '<em><b>Type Signature</b></em>' attribute. * The default value is <code>""</code>. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Type Signature</em>' attribute isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> * @return the value of the '<em>Type Signature</em>' attribute. * @see org.eclipse.jst.jsf.context.symbol.SymbolPackage#getITypeDescriptor_TypeSignature() * @model default="" changeable="false" volatile="true" * @generated */ String getTypeSignature(); /** * Returns the value of the '<em><b>Super Type Signatures</b></em>' attribute list. * The list contents are of type {@link java.lang.String}. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Super Type Signatures</em>' attribute list isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> * @return the value of the '<em>Super Type Signatures</em>' attribute list. * @see org.eclipse.jst.jsf.context.symbol.SymbolPackage#getITypeDescriptor_SuperTypeSignatures() * @model type="java.lang.String" volatile="true" * @generated */ EList getSuperTypeSignatures(); /** * Returns the value of the '<em><b>Interface Type Signatures</b></em>' attribute list. * The list contents are of type {@link java.lang.String}. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Interface Type Signatures</em>' attribute list isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> * @return the value of the '<em>Interface Type Signatures</em>' attribute list. * @see org.eclipse.jst.jsf.context.symbol.SymbolPackage#getITypeDescriptor_InterfaceTypeSignatures() * @model type="java.lang.String" volatile="true" * @generated */ EList getInterfaceTypeSignatures(); /** * Returns the value of the '<em><b>Type Signature Delegate</b></em>' attribute. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Type Signature Delegate</em>' attribute isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> * @return the value of the '<em>Type Signature Delegate</em>' attribute. * @see #setTypeSignatureDelegate(String) * @see org.eclipse.jst.jsf.context.symbol.SymbolPackage#getITypeDescriptor_TypeSignatureDelegate() * @model * @generated */ String getTypeSignatureDelegate(); /** * Sets the value of the '{@link org.eclipse.jst.jsf.context.symbol.ITypeDescriptor#getTypeSignatureDelegate <em>Type Signature Delegate</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Type Signature Delegate</em>' attribute. * @see #getTypeSignatureDelegate() * @generated */ void setTypeSignatureDelegate(String value); /** * Returns the value of the '<em><b>Methods</b></em>' reference list. * The list contents are of type {@link org.eclipse.jst.jsf.context.symbol.IMethodSymbol}. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Methods</em>' reference list isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> * @return the value of the '<em>Methods</em>' reference list. * @see org.eclipse.jst.jsf.context.symbol.SymbolPackage#getITypeDescriptor_Methods() * @model type="org.eclipse.jst.jsf.context.symbol.IMethodSymbol" volatile="true" * @generated */ EList getMethods(); /** * Returns the value of the '<em><b>Type Parameter Signatures</b></em>' attribute list. * The list contents are of type {@link java.lang.String}. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Type Parameter Signatures</em>' attribute list isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> * @return the value of the '<em>Type Parameter Signatures</em>' attribute list. * @see org.eclipse.jst.jsf.context.symbol.SymbolPackage#getITypeDescriptor_TypeParameterSignatures() * @model type="java.lang.String" unique="false" transient="true" * @generated */ EList getTypeParameterSignatures(); /** * Returns the value of the '<em><b>Jdt Context</b></em>' attribute. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Jdt Context</em>' attribute isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> * @return the value of the '<em>Jdt Context</em>' attribute. * @see #setJdtContext(IJavaElement) * @see org.eclipse.jst.jsf.context.symbol.SymbolPackage#getITypeDescriptor_JdtContext() * @model dataType="org.eclipse.jst.jsf.context.symbol.IJavaElement" * @generated */ IJavaElement getJdtContext(); /** * Sets the value of the '{@link org.eclipse.jst.jsf.context.symbol.ITypeDescriptor#getJdtContext <em>Jdt Context</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Jdt Context</em>' attribute. * @see #getJdtContext() * @generated */ void setJdtContext(IJavaElement value); /** * Returns the value of the '<em><b>Enum Type</b></em>' attribute. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Enum Type</em>' attribute isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> * @return the value of the '<em>Enum Type</em>' attribute. * @see #setEnumType(boolean) * @see org.eclipse.jst.jsf.context.symbol.SymbolPackage#getITypeDescriptor_EnumType() * @model * @generated */ boolean isEnumType(); /** * Sets the value of the '{@link org.eclipse.jst.jsf.context.symbol.ITypeDescriptor#isEnumType <em>Enum Type</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Enum Type</em>' attribute. * @see #isEnumType() * @generated */ void setEnumType(boolean value); /** * <!-- begin-user-doc --> * @param typeSignature * @return true if the type descriptor's underlying type would resolve true == (type instanceof typeSignature) * * <!-- end-user-doc --> * @model * @generated */ boolean instanceOf(String typeSignature); /** * <!-- begin-user-doc --> * @return true iff this type is an array of something * <!-- end-user-doc --> * @model kind="operation" * @generated */ boolean isArray(); /** * <!-- begin-user-doc --> * @return a symbol representing an element of this array. May * throw an exception or return null if isArray() == false * <!-- end-user-doc --> * @model kind="operation" * @generated */ IObjectSymbol getArrayElement(); /** * <!-- begin-user-doc --> * @param resolvedTypeSignature * @return the IType for resolvedTypeSignature or null if can't be resolved * <!-- end-user-doc --> * @model dataType="org.eclipse.jst.jsf.context.symbol.IType" * @generated */ IType resolveType(String resolvedTypeSignature); /** * <!-- begin-user-doc --> * @param methodName * @param methodArgs * @param symbolName * @return a symbol or null if not handling * <!-- end-user-doc --> * @model methodArgsType="java.lang.String" methodArgsMany="true" * @generated */ ISymbol calculateSyntheticCall(String methodName, EList methodArgs, String symbolName); }