/******************************************************************************* * Copyright (c) 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 - initial API and implementation * ********************************************************************************/ package org.eclipse.jst.jsf.taglibprocessing.attributevalues; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues; import org.eclipse.jst.jsf.metadataprocessors.features.PossibleValue; /** * Meta-data processing type representing a Language Code type. * A Language code is defined as in html spec http://www.w3.org/TR/html4/types.html#h-6.8 * * <p><b>Provisional API - subject to change</b></p> * */ public class LanguageCodeType extends EnumerationType implements IPossibleValues { private static final LanguageCodeMap _map = new LanguageCodeMap(); @Override protected String getReturnType() { return "java.lang.String"; //$NON-NLS-1$ } public List getPossibleValues() { List ret = new ArrayList(); for(Iterator it = _map.keySet().iterator();it.hasNext();){ String key = (String)it.next(); String value = _map.get(key); PossibleValue pv = new PossibleValue(key, value); ret.add(pv); } return ret; } public boolean isValidValue(String value) { if(!_map.containsKey(value)) { addNewValidationMessage(Messages.LanguageCodeType_1); } return getValidationMessages().isEmpty(); } /** * Defines language code map * */ private static class LanguageCodeMap extends HashMap<String, String> { private static final long serialVersionUID = 1L; LanguageCodeMap() { put("af", Messages.LanguageCodeType_118); //$NON-NLS-1$ put("ar", Messages.LanguageCodeType_0); //$NON-NLS-1$ put("be", Messages.LanguageCodeType_7); //$NON-NLS-1$ put("bg", Messages.LanguageCodeType_9); //$NON-NLS-1$ put("br", Messages.LanguageCodeType_11); //$NON-NLS-1$ put("ca", Messages.LanguageCodeType_13); //$NON-NLS-1$ put("cs", Messages.LanguageCodeType_15); //$NON-NLS-1$ put("da", Messages.LanguageCodeType_17); //$NON-NLS-1$ put("de", Messages.LanguageCodeType_19); //$NON-NLS-1$ put("el", Messages.LanguageCodeType_21); //$NON-NLS-1$ put("en", Messages.LanguageCodeType_23); //$NON-NLS-1$ put("es", Messages.LanguageCodeType_25); //$NON-NLS-1$ put("et", Messages.LanguageCodeType_27); //$NON-NLS-1$ put("eu", Messages.LanguageCodeType_29); //$NON-NLS-1$ put("fa", Messages.LanguageCodeType_31); //$NON-NLS-1$ put("fi", Messages.LanguageCodeType_33); //$NON-NLS-1$ put("fo", Messages.LanguageCodeType_35); //$NON-NLS-1$ put("fr", Messages.LanguageCodeType_37); //$NON-NLS-1$ put("gd", Messages.LanguageCodeType_39); //$NON-NLS-1$ put("he", Messages.LanguageCodeType_41); //$NON-NLS-1$ put("hi", Messages.LanguageCodeType_43); //$NON-NLS-1$ put("hr", Messages.LanguageCodeType_45); //$NON-NLS-1$ put("hu", Messages.LanguageCodeType_47); //$NON-NLS-1$ put("id", Messages.LanguageCodeType_49); //$NON-NLS-1$ put("is", Messages.LanguageCodeType_51); //$NON-NLS-1$ put("it", Messages.LanguageCodeType_53); //$NON-NLS-1$ put("ja", Messages.LanguageCodeType_55); //$NON-NLS-1$ put("ko", Messages.LanguageCodeType_57); //$NON-NLS-1$ put("lt", Messages.LanguageCodeType_59); //$NON-NLS-1$ put("lv", Messages.LanguageCodeType_61); //$NON-NLS-1$ put("mk", Messages.LanguageCodeType_63); //$NON-NLS-1$ put("ms", Messages.LanguageCodeType_65); //$NON-NLS-1$ put("mt", Messages.LanguageCodeType_67); //$NON-NLS-1$ put("nl", Messages.LanguageCodeType_69); //$NON-NLS-1$ put("no", Messages.LanguageCodeType_71); //$NON-NLS-1$ put("pl", Messages.LanguageCodeType_73); //$NON-NLS-1$ put("pt", Messages.LanguageCodeType_75); //$NON-NLS-1$ put("rm", Messages.LanguageCodeType_77); //$NON-NLS-1$ put("ro", Messages.LanguageCodeType_79); //$NON-NLS-1$ put("ru", Messages.LanguageCodeType_81); //$NON-NLS-1$ put("sk", Messages.LanguageCodeType_83); //$NON-NLS-1$ put("sl", Messages.LanguageCodeType_85); //$NON-NLS-1$ put("sq", Messages.LanguageCodeType_87); //$NON-NLS-1$ put("sr", Messages.LanguageCodeType_89); //$NON-NLS-1$ put("sv", Messages.LanguageCodeType_91); //$NON-NLS-1$ put("sx", Messages.LanguageCodeType_93); //$NON-NLS-1$ put("sz", Messages.LanguageCodeType_95); //$NON-NLS-1$ put("th", Messages.LanguageCodeType_97); //$NON-NLS-1$ put("tn", Messages.LanguageCodeType_99); //$NON-NLS-1$ put("tr", Messages.LanguageCodeType_101); //$NON-NLS-1$ put("ts", Messages.LanguageCodeType_103); //$NON-NLS-1$ put("uk", Messages.LanguageCodeType_105); //$NON-NLS-1$ put("ur", Messages.LanguageCodeType_107); //$NON-NLS-1$ put("vi", Messages.LanguageCodeType_109); //$NON-NLS-1$ put("xh", Messages.LanguageCodeType_111); //$NON-NLS-1$ put("yi", Messages.LanguageCodeType_113); //$NON-NLS-1$ put("zh", Messages.LanguageCodeType_115); //$NON-NLS-1$ put("zu", Messages.LanguageCodeType_117); //$NON-NLS-1$ } } }