/******************************************************************************* * Copyright (c) 2004, 2006 Sybase, Inc. 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: * Sybase, Inc. - initial API and implementation *******************************************************************************/ package org.eclipse.jst.jsf.facesconfig.ui.util; import java.util.List; import org.eclipse.core.resources.IProject; import org.eclipse.jst.jsf.core.jsfappconfig.internal.IJSFAppConfigManager; import org.eclipse.jst.jsf.core.jsfappconfig.internal.JSFAppConfigManagerFactory; import org.eclipse.jst.jsf.facesconfig.emf.ManagedBeanType; /** * * @author sfshi * */ public class ManagedBeanUtil { /** * Determines if the new bean to be added is already a member of the * configuration set. * @param project * * @param beanName - * The name of the bean being added * @return int - 0 if bean doesn't exist, otherwise the choice from the * Duplicate Bean dialog */ public static boolean isBeanDuplicate(final IProject project, final String beanName) { final IJSFAppConfigManager appCfgMgr = JSFAppConfigManagerFactory.getJSFAppConfigManagerInstance(project); if (appCfgMgr != null) { final List<ManagedBeanType> beans = appCfgMgr.getManagedBeans(); // Iterate through the bean list for (final ManagedBeanType mbti : beans) { if (mbti.getManagedBeanName() != null) { final String name = mbti.getManagedBeanName() .getTextContent(); if (name != null && name.equals(beanName)) { return true; } } } } return false; } /** * get the default managed bean name in the current project according to * reference name * * @param project - * current project * @param refName - * seed reference name * @return String - default managed bean name */ public static String getDefaultManagedBeanName(final IProject project, final String refName) { String defaultName = refName; int newRefNameIndex = 1; while (isBeanDuplicate(project, defaultName)) { defaultName = refName + newRefNameIndex; newRefNameIndex++; } return defaultName; } }