diff options
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.java | 226 |
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(); -// } -// -// } - -} |