diff options
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/symbols/AbstractDataModelVariableFactory.java')
-rw-r--r-- | jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/symbols/AbstractDataModelVariableFactory.java | 255 |
1 files changed, 0 insertions, 255 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/symbols/AbstractDataModelVariableFactory.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/symbols/AbstractDataModelVariableFactory.java deleted file mode 100644 index af693a58f..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/symbols/AbstractDataModelVariableFactory.java +++ /dev/null @@ -1,255 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007 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.designtime.symbols; - -import org.eclipse.core.resources.IFile; -import org.eclipse.jdt.core.IJavaProject; -import org.eclipse.jdt.core.Signature; -import org.eclipse.jst.jsf.common.internal.types.TypeConstants; -import org.eclipse.jst.jsf.common.internal.types.ValueType; -import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContext; -import org.eclipse.jst.jsf.context.symbol.ERuntimeSource; -import org.eclipse.jst.jsf.context.symbol.ISymbol; -import org.eclipse.jst.jsf.core.internal.JSFCorePlugin; -import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants; -import org.eclipse.jst.jsf.validation.internal.appconfig.AppConfigValidationUtil; -import org.w3c.dom.Element; - -/** - * A framework provided variable factory for EL model objects that are - * constructed based on DataModel's dervied from an EL expression. - * - * @author cbateman - * - */ -public abstract class AbstractDataModelVariableFactory -{ - private final JSFSymbolFactory _symbolFactory = new JSFSymbolFactory(); - - /** - * @param elText - * The EL expression text. Must not be null - * @param elContext - * The document context pointing to elText in the source - * document. Must not be null - * @param file - * The workspace resource that contains elText. Must not be null. - * @return the value expression resolved from elText or null if it cannot be - * resolved or elText doesn't resolve to value expression (i.e. is a - * method expression) - * @deprecated use JSFSymbolFactory.getValueTypeFromEL instead. - */ - public final ValueType createValueExpression(final String elText, - final IStructuredDocumentContext elContext, final IFile file) - { - return getSymbolFactory().getValueTypeFromEL(elText, elContext, file); - } - - /** - * @return the symbol factory used by this variable factory - */ - public final JSFSymbolFactory getSymbolFactory() - { - return _symbolFactory; - } - - /** - * @param symbolName - * The name of the symbol to be created. Must not be null - * @param signature - * The type signature of the array type. Must not be null - * @param javaProject - * must not be null - * @return a symbol based approximating an implicit DataModel wrapper for an - * array - * @deprecated use JSFSymbolFactory.createArraySymbol instead - */ - protected final ISymbol createArraySymbol(final String symbolName, - final String signature, final IJavaProject javaProject) - { - return getSymbolFactory().createArraySymbol(symbolName, signature, - ERuntimeSource.TAG_INSTANTIATED_SYMBOL_LITERAL, javaProject); - } - - /** - * Implements default rules for taking an non-array value expression and - * resolving it to a ISymbol modelling a JSF DataModel - * - * @param symbolName - * @param valueType - * @param javaProject - * @return a symbol where valueType is considered to be the base type upon - * which a data model would be created. This combines the - * possibility that the value expression is either an explicit - * DataModel implementation or a non-DataModel type for which JSF be - * default provides an implicit wrapper model. - * - * List is treated as a special case here, since their are two subcases: 1) - * the list is a raw type, in which case it must be treated as implicit and - * opaque (as to the type of the variable created) 2) the list has Java 5 - * type argument information that can be used to infer the type of the row - * variable - */ - public ISymbol createFromType(String symbolName, ValueType valueType, - IJavaProject javaProject) - { - return internalCreateFromBaseType(symbolName, valueType, javaProject); - } - - private ISymbol internalCreateFromBaseType(String symbolName, - ValueType valueType, IJavaProject javaProject) - { - // based on JSF 1.1 spec section 4.2.1.4 the data model - // value binding can be one of a number of object that will - // get an implicit DataModel wrapper at runtime - - // could be an array - if (Signature.getArrayCount(valueType.getSignature()) > 0) - { - return getSymbolFactory() - .createArraySymbol(symbolName, valueType.getSignature(), - ERuntimeSource.TAG_INSTANTIATED_SYMBOL_LITERAL, - javaProject); - } - - // if is a list, then we have extra work to do if it - // is generic and has info about its contents - if (valueType.isInstanceOf(TypeConstants.TYPE_LIST)) - { - return getSymbolFactory().createFromList(symbolName, valueType, ERuntimeSource.TAG_INSTANTIATED_SYMBOL_LITERAL, null, javaProject); - } - // if is JSTL ResultSet, java ResultSet or DataModel - // return the default symbol -- in the absence of definite - // template info, these row containers are opaque to us - else if (valueType - .isInstanceOf(TypeConstants.TYPE_JAVAX_SERVLET_JSP_JSTL_SQL_RESULT) - || valueType.isInstanceOf(TypeConstants.TYPE_RESULT_SET) - || valueType.isInstanceOf(TypeConstants.TYPE_DATA_MODEL)) - { - return getSymbolFactory().createDefaultSymbol(symbolName, ERuntimeSource.TAG_INSTANTIATED_SYMBOL_LITERAL, Messages - .getString("AbstractDataModelVariableFactory.DataModel.Symbol.RowVariable.DetailedDescription")); //$NON-NLS-1$ - } - - // in other cases, we assume that the value is an explicit single row - // scalar object - return getSymbolFactory().createScalarSymbol(symbolName, valueType.getSignature(), - ERuntimeSource.TAG_INSTANTIATED_SYMBOL_LITERAL, javaProject); - } - - /** - * @param symbolName - * The name of the symbol to create. Must not be null. - * @param valueType - * The value expression representing the implicit list. The - * signature on the valueType must be a list. Must not be null. - * @param javaProject - * The JavaProject whose classpath will be used to resolve types. - * Must not be null. - * - * @return a symbol that approximates as best as possible an implicit - * DataModel for java.util.List value expressions. If the List has - * resolvable Java 5 type arguments, then a scalar symbol will be - * created using this type information. If it is a raw type, then - * createDefaultSymbol() is called - * @deprecated use JSFSymbolFactory.createFromList - */ - protected final ISymbol createFromList(String symbolName, - ValueType valueType, IJavaProject javaProject) - { - return getSymbolFactory().createFromList(symbolName, valueType, - ERuntimeSource.TAG_INSTANTIATED_SYMBOL_LITERAL, null, - javaProject); - } - - /** - * @param symbolName - * The name of the symbol to create. Must not be null. - * @param signature - * The fully resolved type signature of the scalar. Must not be - * null. - * @param javaProject - * The JavaProject whose classpath is to be used to resolve type - * information for signture. Must not be null. - * @return a symbol approximating a scalar object DataModel wrapper. The row - * variable for the data model becomes of type signature - * @deprecated use JSFSymbolFactory.createScalarSymbol instead. - */ - protected final ISymbol createScalarSymbol(final String symbolName, - final String signature, final IJavaProject javaProject) - { - return getSymbolFactory().createScalarSymbol(symbolName, signature, - ERuntimeSource.TAG_INSTANTIATED_SYMBOL_LITERAL, javaProject); - } - - /** - * @param symbolName - * The name of the symbol to create. Must not be null - * @return a default symbol that eliminates bogus warnings for this - * dataTable's row variable in cases where something better is - * resolvable. Note that this is not ideal, since will result in any - * property being accepted on the variable with this name. - * @deprecated use JSFSymbolFactory.createDefaultSymbol instead. - */ - public final ISymbol createDefaultSymbol(final String symbolName) - { - return getSymbolFactory() - .createDefaultSymbol( - symbolName, - ERuntimeSource.TAG_INSTANTIATED_SYMBOL_LITERAL, - Messages - .getString("AbstractDataModelVariableFactory.DataModel.Symbol.RowVariable.DetailedDescription")); //$NON-NLS-1$ - } - - /** - * @param dataTableElement - * the DOM element that has a "value" attribute. Must not be - * null. - * @return the el text from the 'value attribute of a dataTable element or - * null if not found - */ - protected static String getELText(final Element dataTableElement) - { - assert dataTableElement != null; - String attrVal = dataTableElement - .getAttribute(IJSFConstants.ATTR_VALUE); - - if (attrVal != null) - { - return AppConfigValidationUtil.extractELExpression(attrVal) - .getElText(); - } - return null; - } - - /** - * @return the variable source name. Protects against null in the abstract - * method - */ - protected final String internalGetVariableSourceName() - { - String variableSourceName = getVariableSourceName(); - - if (variableSourceName == null) - { - JSFCorePlugin.log("Missing variableSourceName", new Throwable()); //$NON-NLS-1$ - return "**missing variable source name**"; //$NON-NLS-1$ - } - - return variableSourceName; - } - - /** - * @return a user displayable name for the source of variables created by - * this factory Must not return null. - */ - protected abstract String getVariableSourceName(); -} |