Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentassist/el/SymbolResolveUtil.java')
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentassist/el/SymbolResolveUtil.java189
1 files changed, 0 insertions, 189 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentassist/el/SymbolResolveUtil.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentassist/el/SymbolResolveUtil.java
deleted file mode 100644
index 29b151853..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentassist/el/SymbolResolveUtil.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 Oracle Corporation and others.
- * 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:
- * Oracle Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.core.internal.contentassist.el;
-
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jst.jsf.common.internal.types.CompositeType;
-import org.eclipse.jst.jsf.common.internal.types.IAssignable;
-import org.eclipse.jst.jsf.context.resolver.structureddocument.IDOMContextResolver;
-import org.eclipse.jst.jsf.context.resolver.structureddocument.IStructuredDocumentContextResolverFactory;
-import org.eclipse.jst.jsf.context.resolver.structureddocument.ITaglibContextResolver;
-import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContext;
-import org.eclipse.jst.jsf.context.symbol.IInstanceSymbol;
-import org.eclipse.jst.jsf.context.symbol.IObjectSymbol;
-import org.eclipse.jst.jsf.context.symbol.ISymbol;
-import org.eclipse.jst.jsf.designtime.resolver.ISymbolContextResolver;
-import org.eclipse.jst.jsf.designtime.resolver.StructuredDocumentSymbolResolverFactory;
-import org.eclipse.jst.jsf.metadataprocessors.MetaDataEnabledProcessingFactory;
-import org.eclipse.jst.jsf.metadataprocessors.features.ELIsNotValidException;
-import org.eclipse.jst.jsf.metadataprocessors.features.IValidELValues;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * Utility class for resolving symbols for a IStructuredDocumentContext.
- */
-public class SymbolResolveUtil {
-
- private SymbolResolveUtil() {
- // utility class; not instantiable
- }
-
- /**
- * Get symbol for a variable (managed bean name, bundle name)
- *
- * @param context
- * @param name
- * @return ISymbol
- */
- public static ISymbol getSymbolForVariable(
- final IStructuredDocumentContext context, final String name) {
- final ISymbolContextResolver symbolResolver = StructuredDocumentSymbolResolverFactory
- .getInstance().getSymbolContextResolver(context);
-
- return symbolResolver.getVariable(name);
- }
-
- /**
- * Get symbol for a variable suffix (e. g. bean property/method, bundle
- * property). Takes into account whether method bindings are expected for
- * the given context.
- *
- * @param context -
- * the IStructuredDocumentContext
- * @param fullName -
- * full name of the suffix (e. g. bean.property1.property2)
- * @param isLastSuffix -
- * set true if there follows no other suffix. Method names will
- * only be considered if true
- * @return ISymbol. May be null.
- */
- public static ISymbol getSymbolForVariableSuffixExpr(
- final IStructuredDocumentContext context, final String fullName,
- final boolean isLastSuffix) {
- String[] ids = fullName.split("\\."); //$NON-NLS-1$
-
- // if no suffixes, only one id
- if (ids.length < 1) {
- ids = new String[] { fullName };
- }
-
- final ISymbolContextResolver symbolResolver = StructuredDocumentSymbolResolverFactory
- .getInstance().getSymbolContextResolver(context);
- if (symbolResolver != null) {
- ISymbol symbol = symbolResolver.getVariable(ids[0]);
- if (symbol instanceof IInstanceSymbol
- && ((IInstanceSymbol) symbol).isTypeResolved()) {
- for (int curSuffixIdx = 1; curSuffixIdx < ids.length; curSuffixIdx++) {
- if (isLastSuffix && curSuffixIdx == ids.length - 1
- && isMethodBindingExpected(context)) {
- /*
- * TODO Take into acount required method signature,
- * since there may be different methods with the same
- * name
- */
- return symbolResolver.getMethod((IObjectSymbol) symbol,
- ids[curSuffixIdx]);
- }
-
- final ISymbol property = symbolResolver.getProperty(symbol,
- ids[curSuffixIdx]);
-
- if (property == null) {
- return null;
- }
- symbol = property;
- }
- return symbol;
- }
- }
- return null;
- }
-
- /**
- * Tells whether method bindings are expected for the given context.
- *
- * @param context -
- * the IStructuredDocumentContext
- * @return true, if method bindings expected
- */
- public static boolean isMethodBindingExpected(
- final IStructuredDocumentContext context) {
- return isMethodBindingExpected(context, null);
- }
-
- /**
- * Tells whether method bindings are expected for the given context. Will
- * add signatures of expected method bindings to a given list.
- *
- * @param context -
- * the IStructuredDocumentContext
- * @param expectedBindings -
- * a list. If not null, signatures of expected method bindings
- * will be appended to this list.
- * @return true, if method bindings expected
- */
- public static boolean isMethodBindingExpected(
- final IStructuredDocumentContext context,
- final List expectedBindings) {
- final IDOMContextResolver domResolver = IStructuredDocumentContextResolverFactory.INSTANCE
- .getDOMContextResolver(context);
-
- final Node curNode = domResolver.getNode();
-
- if (curNode instanceof Attr) {
- final Attr attr = (Attr) curNode;
- final Element element = attr.getOwnerElement();
-
- final ITaglibContextResolver taglibResolver = IStructuredDocumentContextResolverFactory.INSTANCE
- .getTaglibContextResolver(context);
-
- final String uri = taglibResolver.getTagURIForNodeName(element);
-
- final List elVals = MetaDataEnabledProcessingFactory.getInstance()
- .getAttributeValueRuntimeTypeFeatureProcessors(
- IValidELValues.class, context, uri,
- element.getLocalName(), attr.getLocalName());
-
- boolean methodBindingExpected = false;
- for (final Iterator it = elVals.iterator(); it.hasNext();) {
- final IValidELValues validValues = (IValidELValues) it.next();
-
- try {
- final CompositeType type = validValues
- .getExpectedRuntimeType();
- if (type != null
- && type.getAssignmentTypeMask() == IAssignable.ASSIGNMENT_TYPE_NONE) {
- methodBindingExpected = true;
- if (expectedBindings != null) {
- expectedBindings.addAll(Arrays.asList(validValues
- .getExpectedRuntimeType().getSignatures()));
- } else {
- // if we don't need the method signatures, *one*
- // expected method binding is sufficient.
- return true;
- }
- }
- } catch (final ELIsNotValidException e) {
- // do nothing
- }
- }
- return methodBindingExpected;
- }
- // default condition is no method binding
- return false;
- }
-
-}

Back to the top