blob: 34fee432ecde41f060e66ef43ad82f335f06a0f3 [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:
* Cameron Bateman/Oracle - initial API and implementation
*
********************************************************************************/
package org.eclipse.jst.jsf.context.symbol;
import org.eclipse.emf.common.util.EList;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>IObject Symbol</b></em>'.
*
* <p><b>Provisional API - subject to change</b></p>
* <!-- end-user-doc -->
*
* <p>
* The following features are supported:
* <ul>
* <li>{@link org.eclipse.jst.jsf.context.symbol.IObjectSymbol#getTypeDescriptor <em>Type Descriptor</em>}</li>
* <li>{@link org.eclipse.jst.jsf.context.symbol.IObjectSymbol#isReadable <em>Readable</em>}</li>
* <li>{@link org.eclipse.jst.jsf.context.symbol.IObjectSymbol#isWritable <em>Writable</em>}</li>
* </ul>
* </p>
*
* @see org.eclipse.jst.jsf.context.symbol.SymbolPackage#getIObjectSymbol()
* @model interface="true" abstract="true"
* @generated
*/
public interface IObjectSymbol extends ISymbol {
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
String copyright = "Copyright 2006 Oracle"; //$NON-NLS-1$
/**
* Returns the value of the '<em><b>Type Descriptor</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Type Descriptor</em>' reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Type Descriptor</em>' reference.
* @see #setTypeDescriptor(ITypeDescriptor)
* @see org.eclipse.jst.jsf.context.symbol.SymbolPackage#getIObjectSymbol_TypeDescriptor()
* @model
* @generated
*/
ITypeDescriptor getTypeDescriptor();
/**
* Sets the value of the '{@link org.eclipse.jst.jsf.context.symbol.IObjectSymbol#getTypeDescriptor <em>Type Descriptor</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Type Descriptor</em>' reference.
* @see #getTypeDescriptor()
* @generated
*/
void setTypeDescriptor(ITypeDescriptor value);
/**
* Returns the value of the '<em><b>Readable</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Readable</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Readable</em>' attribute.
* @see #setReadable(boolean)
* @see org.eclipse.jst.jsf.context.symbol.SymbolPackage#getIObjectSymbol_Readable()
* @model
* @generated
*/
boolean isReadable();
/**
* Sets the value of the '{@link org.eclipse.jst.jsf.context.symbol.IObjectSymbol#isReadable <em>Readable</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Readable</em>' attribute.
* @see #isReadable()
* @generated
*/
void setReadable(boolean value);
/**
* Returns the value of the '<em><b>Writable</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Writable</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Writable</em>' attribute.
* @see #setWritable(boolean)
* @see org.eclipse.jst.jsf.context.symbol.SymbolPackage#getIObjectSymbol_Writable()
* @model
* @generated
*/
boolean isWritable();
/**
* Sets the value of the '{@link org.eclipse.jst.jsf.context.symbol.IObjectSymbol#isWritable <em>Writable</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Writable</em>' attribute.
* @see #isWritable()
* @generated
*/
void setWritable(boolean value);
/**
* <!-- begin-user-doc -->
* @param typeSignature
* @return true if this object can be coerced (is an instanceof) the type
* specified in the fully qualified typeSignature
* <!-- end-user-doc -->
* @model
* @generated
*/
boolean supportsCoercion(String typeSignature);
/**
* <!-- begin-user-doc -->
* @param typeSignature
* @return a type descriptor supporting a class cast of this object to
* the request typeSignature, or null if such a cast is not supported.
* Returns non-null iff supportsCoercion(typeSignature) == false
* <!-- end-user-doc -->
* @model
* @generated
*/
ITypeDescriptor coerce(String typeSignature);
/**
* <!-- begin-user-doc -->
* @param methodName
* @param methodArguments
* @param symbolName
* @return a symbol resulting from calling the call or null if can't be determined.
* Generally, the symbolName should be used for the getName() value of the returned
* symbol, although implementers are not bound to this if a more meaningful value
* can be calculated.
* <!-- end-user-doc -->
* @model methodArgumentsType="org.eclipse.jst.jsf.common.internal.types.ValueType" methodArgumentsDataType="org.eclipse.jst.jsf.context.symbol.ValueType" methodArgumentsMany="true"
* @generated
*/
ISymbol call(String methodName, EList methodArguments, String symbolName);
} // IObjectSymbol