Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/context/symbol/InitializedSymbolFactory.java')
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/context/symbol/InitializedSymbolFactory.java241
1 files changed, 0 insertions, 241 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/context/symbol/InitializedSymbolFactory.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/context/symbol/InitializedSymbolFactory.java
deleted file mode 100644
index 50a30a014..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/context/symbol/InitializedSymbolFactory.java
+++ /dev/null
@@ -1,241 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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:
- * Matthias Fuessel -- extracted from https://bugs.eclipse.org/bugs/show_bug.cgi?id=215461
- * Cameron Bateman/Oracle - integrated.
- *
- ********************************************************************************/
-
-package org.eclipse.jst.jsf.context.symbol;
-
-import java.util.Arrays;
-import java.util.Collections;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-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.common.util.TypeUtil;
-
-/**
- * Creates purpose-built symbols and descriptors fully initialized (unlike the
- * EMF factory that simply creates empty instances.
- *
- * This class is for convenience only and should not do anything that clients
- * could not do by hand (though with more work).
- *
- * Clients may use or subclass.
- *
- * @author cbateman
- *
- */
-public class InitializedSymbolFactory
-{
- /**
- * If fullyQualifiedClass can be resolved to an IType, then a bean instance
- * symbol will be created. If the type cannot be resolved, then
- * createUnknownInstanceSymbol is called with the type descriptor on the
- * returned symbol forced to fullyQualifiedClass.
- *
- * @param project
- * @param fullyQualifiedClass
- * @param symbolName
- * @param source
- * @return a symbol
- */
- public final ISymbol createBeanOrUnknownInstanceSymbol(
- final IProject project, final String fullyQualifiedClass,
- final String symbolName, final ERuntimeSource source)
- {
- final IJavaProject javaProject = JavaCore.create(project);
- try
- {
- final IType type = javaProject.findType(fullyQualifiedClass);
-
- // TODO: this is a high-bred since it consists of a java instance
- // but also has properties we can populate at designtime such as
- // the maps. Need to add the second part
- if (type != null)
- {
- final IJavaTypeDescriptor2 typeDesc = SymbolFactory.eINSTANCE
- .createIJavaTypeDescriptor2();
- typeDesc.setType(type);
- final IBeanInstanceSymbol facesContextVar = SymbolFactory.eINSTANCE
- .createIBeanInstanceSymbol();
- facesContextVar.setTypeDescriptor(typeDesc);
- facesContextVar.setName(symbolName);
- facesContextVar.setRuntimeSource(source);
- return facesContextVar;
- }
- }
- catch (final JavaModelException jme)
- {
- // fall-through and fail with unresolved map
- }
-
- final ISymbol symbol = createUnknownInstanceSymbol(symbolName, source);
- ((IInstanceSymbol) symbol)
- .getTypeDescriptor()
- .setTypeSignatureDelegate(
- Signature
- .createTypeSignature(fullyQualifiedClass, true));
-
- return symbol;
- }
-
- /**
- * @param symbolName
- * @param source
- * @return a symbol for a variable of unknown type
- */
- public final IComponentSymbol createUnknownComponentSymbol(
- final String symbolName, final ERuntimeSource source)
- {
- final IComponentSymbol symbol = SymbolFactory.eINSTANCE
- .createIComponentSymbol();
- populateUnknownInstanceSymbol(symbol, symbolName, source);
- return symbol;
- }
-
- /**
- * @param symbolName
- * @param source
- * @return the unknown instance symbol as an IInstanceSymbol
- */
- public final IInstanceSymbol createUnknownInstanceSymbol(
- final String symbolName, final ERuntimeSource source)
- {
- final IInstanceSymbol symbol = SymbolFactory.eINSTANCE
- .createIInstanceSymbol();
- populateUnknownInstanceSymbol(symbol, symbolName, source);
- return symbol;
- }
-
- /**
- * @param name
- * may NOT be null.
- * @param typeDesc
- * may NOT be null.
- * @param description
- * may be null
- * @return a component symbol using the java type descriptor
- * @throws IllegalArgumentException
- * if non-null argument is null
- */
- public final IComponentSymbol createJavaComponentSymbol(final String name,
- final IJavaTypeDescriptor2 typeDesc, final String description)
- {
- if (name == null || typeDesc == null)
- {
- throw new IllegalArgumentException(
- "name and typeDesc must not be null"); //$NON-NLS-1$
- }
-
- final IComponentSymbol symbol = SymbolFactory.eINSTANCE
- .createIComponentSymbol();
- symbol.setName(name);
- symbol.setTypeDescriptor(typeDesc);
- symbol.setRuntimeSource(ERuntimeSource.TAG_INSTANTIATED_SYMBOL_LITERAL);
- return symbol;
- }
-
- /**
- * @param name
- * @param valueType
- * @param description
- * @param javaProject
- * @return an IComponentSymbol that uses valueType to derive the type
- * of its type descriptor
- */
- public final IComponentSymbol createJavaComponentSymbol(final String name,
- final ValueType valueType, final String description,
- final IJavaProject javaProject)
- {
- final IJavaTypeDescriptor2 typeDesc = createTypeDescriptorFromSignature(
- valueType.getSignature(), javaProject);
- return createJavaComponentSymbol(name, typeDesc, description);
- }
-
- private void populateUnknownInstanceSymbol(final IInstanceSymbol symbol,
- final String symbolName, final ERuntimeSource source)
- {
- final IMapTypeDescriptor typeDesc = SymbolFactory.eINSTANCE
- .createIBoundedMapTypeDescriptor();
- // empty map source
- typeDesc.setMapSource(Collections.emptyMap());
- symbol.setName(symbolName);
- symbol.setTypeDescriptor(typeDesc);
- symbol.setRuntimeSource(source);
- }
-
- /**
- * @param type
- * @return the signature of the element type of a collection/array,
- * <code>null</code>, if untyped Collection or no container type
- * at all.
- */
- public final String getElementSignatureFromContainerType(ValueType type)
- {
- if (type.isArray())
- {
- // TODO full signature
- String signature = type.getSignature();
- int arrayCount = Signature.getArrayCount(signature);
- String elementSig = Signature.getElementType(signature);
- return Signature.createArraySignature(elementSig, arrayCount - 1);
- }
- if (type.isInstanceOf(TypeConstants.TYPE_COLLECTION))
- {
- final String[] typeArguments = type.getTypeArguments();
- if (typeArguments.length > 0)
- {
- return typeArguments[0];
- }
- }
- return null;
- }
-
- /**
- * @param signature
- * @param javaProject
- * @return a java type descriptor based on the fully qualified type
- * specified by signature using javaProject as the lookup classpath.
- * If the IType for signature cannot be found, the descriptor's
- * typeSignatureDelegate will be used.
- */
- public final IJavaTypeDescriptor2 createTypeDescriptorFromSignature(
- final String signature, final IJavaProject javaProject)
- {
- final String elementType = Signature.getElementType(signature);
-
- IJavaTypeDescriptor2 desc = SymbolFactory.eINSTANCE
- .createIJavaTypeDescriptor2();
- final int arrayCount = Signature.getArrayCount(signature);
- if (arrayCount > 0)
- {
- desc.setArrayCount(arrayCount);
- }
-
- IType type = TypeUtil.resolveType(javaProject, elementType);
- if (type != null)
- {
- desc.setType(type);
- }
- else
- {
- desc.setTypeSignatureDelegate(Signature.getTypeErasure(signature));
- }
- desc.getTypeParameterSignatures().addAll(
- Arrays.asList(Signature.getTypeArguments(signature)));
- return desc;
- }
-}

Back to the top