/******************************************************************************* * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is 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: * Exadel, Inc. and Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.jsf.model.helpers.pages; import java.util.*; import org.jboss.tools.common.model.*; import org.jboss.tools.jsf.model.pv.JSFProjectConfiguration; import org.jboss.tools.jsf.model.pv.JSFProjectTreeConstants; import org.jboss.tools.jsf.model.pv.JSFProjectsTree; import org.jboss.tools.jst.web.project.list.IWebPromptingProvider; public class ResourceBundleHelper { /** * Creates two maps and puts them to a list. * Maps are based on data in resource-bundle elements * in faces config files of version 1.2. * First map is 'var' attribute values (map keys) * to 'base-name' attribute values (map values). * Second map is the reverse of the first map. * Returns either list with 2 maps or empty list. * * @param model * @param list * @return */ public static List<Object> getRegisteredResourceBundles(XModel model) { XModelObject root = JSFProjectsTree.getProjectsRoot(model); if(root == null) return IWebPromptingProvider.EMPTY_LIST; JSFProjectConfiguration cg = (JSFProjectConfiguration)root.getChildByPath(JSFProjectTreeConstants.CONFIGURATION); if(cg == null) return IWebPromptingProvider.EMPTY_LIST; Map<String,String> map1 = new TreeMap<String,String>(); Map<String,String> map2 = new TreeMap<String,String>(); List<Object> list = new ArrayList<Object>(); list.add(map1); list.add(map2); XModelObject[] cgs = cg.getTreeChildren(); for (int i = 0; i < cgs.length; i++) { if(!cgs[i].getModelEntity().getName().startsWith("FacesConfig")) continue; XModelObject a = cgs[i].getChildByPath("application"); if(a == null) continue; //Tree has not only faces configs XModelObject[] bs = a.getChildren("JSFResourceBundle"); for (int j = 0; j < bs.length; j++) { String baseName = bs[j].getAttributeValue("base-name"); String _var = bs[j].getAttributeValue("var"); if(baseName != null && _var != null && baseName.length() > 0 && _var.length() > 0) { map1.put(_var, baseName); map2.put(baseName, _var); } } } return list; } }