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/common/metadata/internal/TraitValueHelper2.java')
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/TraitValueHelper2.java226
1 files changed, 0 insertions, 226 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/TraitValueHelper2.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/TraitValueHelper2.java
deleted file mode 100644
index 64238d775..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/TraitValueHelper2.java
+++ /dev/null
@@ -1,226 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 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:
- * Oracle - initial API and implementation
- *
- ********************************************************************************/
-package org.eclipse.jst.jsf.common.metadata.internal;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.impl.BasicEObjectImpl;
-import org.eclipse.emf.ecore.util.FeatureMap;
-import org.eclipse.emf.ecore.xml.type.AnyType;
-import org.eclipse.emf.ecore.xml.type.SimpleAnyType;
-import org.eclipse.jst.jsf.common.JSFCommonPlugin;
-import org.eclipse.jst.jsf.common.metadata.Trait;
-import org.eclipse.jst.jsf.common.metadata.traittypes.traittypes.BooleanValue;
-import org.eclipse.jst.jsf.common.metadata.traittypes.traittypes.ListOfValues;
-import org.eclipse.jst.jsf.common.metadata.traittypes.traittypes.StringValue;
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Experimental/prototype class to assist with decoding trait values.
- * This could/should be made API at some point after "hardening". (https://bugs.eclipse.org/bugs/show_bug.cgi?id=192052)
- * <p>
- * May be subclassed
- * <p>
- * Note: non-static copy of TraitValueHelper
- */
-public class TraitValueHelper2 {
- private static final String KEY_NOT_FOUND = Messages.Key_not_found;
-
- /**
- * @param trait
- * @return EClass of trait value
- */
- public EClass getValueType(final Trait trait){
- if (trait == null)
- return null;
- if (trait.getValue() != null)
- return trait.getValue().eClass();
- return null;
- }
-
- /**
- * @param trait
- * @return value of trait as String Object.
- */
- public Object getValue(final Trait trait){
- if (trait == null)
- return null;
-
- if (trait.getValue() == null)
- return null;
-
- if (trait.getValue() instanceof StringValue) {
- return ((StringValue)trait.getValue()).getValue();
- }
- else if (trait.getValue() instanceof SimpleAnyType){
- return ((SimpleAnyType)trait.getValue()).getRawValue();
- }
- else if (trait.getValue() instanceof AnyType){
- AnyType any = (AnyType)trait.getValue();
- FeatureMap map = any.getMixed();
- return getTextValueFromFeatureMap(map);
- }
- else if ( trait.getValue().eIsProxy() && trait.getValue() instanceof BasicEObjectImpl){
- BasicEObjectImpl o = (BasicEObjectImpl)trait.getValue();
- return o.eProxyURI().toString();
- }
- return trait.getValue();
- }
-
- /**
- * @param map
- * @return String
- */
- protected String getTextValueFromFeatureMap(final FeatureMap map) {
- for (final Iterator it=map.iterator();it.hasNext();){
- final FeatureMap.Entry entry = (FeatureMap.Entry)it.next();
- if (entry.getEStructuralFeature().getName().equals("text")) //$NON-NLS-1$
- return (String)entry.getValue();
- }
- return null;
- }
-
- /**
- * @param trait
- * @return value of trait as String. If externalized, will resolve from resource bundle.
- */
- public String getValueAsString(final Trait trait){
- final Object val = getValue(trait);
- if (val instanceof String){
- return getNLSValue(trait, (String)val);
- }
- else if (val instanceof BooleanValue)
- return String.valueOf(((BooleanValue)val).isTrue());
-
- return null;
- }
-
- /**
- * @param trait whose value a {@link ListOfValues} or is a single string
- * @return List of Strings. If externalized, will resolve from resource bundle
- * using getNLSValue(Trait trait, String rawValue)
- */
- public synchronized List getValueAsListOfStrings(final Trait trait){
- //PROTO ONLY!!! Need to make WAY more robust!
- final List ret = new ArrayList();
- if (trait.getValue() instanceof ListOfValues) {
- for(final Iterator it=trait.getValue().eContents().iterator();it.hasNext();){
- final Object o = it.next();
- if (o instanceof SimpleAnyType){
- final SimpleAnyType sat = (SimpleAnyType)o;
- final String rawValue = getTextValueFromFeatureMap(sat.getMixed());
- final String nlsValue = getNLSValue(trait, rawValue);
-
- ret.add(nlsValue);
- }
- }
- }
- else {
- //may be single value
- String o = getValueAsString(trait);
- if (o != null)
- ret.add(o);
- }
- return ret;
- }
-
- /**
- * Looks for '%' (and not '%%') at beginning of rawValue. If found, looks to the
- * traits sourceModelProvider for resource bundle to resolve the key after
- * stripping the '%' sign.
- * @param trait
- * @param rawValue of string in from metadata
- * @return the NLS Value or rawValue if it cannot be located
- */
- public String getNLSValue(final Trait trait, final String rawValue) {
- String result = rawValue;
- if (rawValue.startsWith("%") && !rawValue.startsWith("%%")){ //$NON-NLS-1$//$NON-NLS-2$
- final String key = rawValue.substring(1);
- result = getNLSPropertyValue(trait, key);
- if (result == null){
- result = rawValue;
- }
- }
- return result == null ? null : result.trim();
- }
-
- /**
- * @param trait
- * @param key
- * @return String
- */
- //will return null if there is an IOException with ResourceBundle
- protected String getNLSPropertyValue(final Trait trait, final String key){
- try{
- IMetaDataSourceModelProvider provider = trait.getSourceModelProvider();
- IResourceBundleProvider resourceBundleProvider = (IResourceBundleProvider)provider.getAdapter(IResourceBundleProvider.class);
- if (resourceBundleProvider != null){
- ResourceBundle resourceBundle_ = resourceBundleProvider.getResourceBundle();
- if (resourceBundle_ != null){
- String replVal = resourceBundle_.getString(key);
- return replVal;
- }
- }
- //return original string
- return key;
-
- } catch (MissingResourceException e){
- //fall thru
- JSFCommonPlugin.log(e, NLS.bind(Messages.MissingResource_exception, new String[]{key}));
- }
- return key + KEY_NOT_FOUND;
- }
-
- /**
- * If trait type is {@link BooleanValue} returns value, otherwise
- * it will get the value as a String and attempt to coerce to boolean.
- * Will return 'false' if coercion fails, or value was null.
- * @param trait
- * @return true or false
- */
- public boolean getValueAsBoolean(final Trait trait) {
- if (trait != null && trait.getValue() instanceof BooleanValue) {
- return ((BooleanValue)trait.getValue()).isTrue();
- }
- final String val = getValueAsString(trait);
- if (val == null)
- return false;
-
- return Boolean.valueOf(val).booleanValue();
- }
-
-// /**
-// * @param trait
-// * @return name of class or primitive datatype that the value is defined as.
-// * For SimpleAnyTypes, the getInstanceType().getInstanceClassName() is returned.
-// * For AnyType, java.lang.String is always returned.
-// * For all others, the class.getName() is returned.
-// */
-// public String getValueInstanceClassName(Trait trait) {String.class.getName();
-// if (trait.getValue() instanceof SimpleAnyType) {
-// return ((SimpleAnyType)trait.getValue()).getInstanceType().getInstanceClassName();
-// }
-// else if (trait.getValue() instanceof AnyType) {
-// return String.class.getName();
-// }
-// else {
-// return trait.getValue().getClass().getName();
-// }
-//
-// }
-
-}

Back to the top