/******************************************************************************* * Copyright (c) 2003, 2004 IBM 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: * IBM Corporation - initial API and implementation *******************************************************************************/ /* * Created on Sep 12, 2003 */ package org.eclipse.jst.j2ee.internal.web.operations; import java.util.List; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.jst.j2ee.internal.plugin.J2EEPlugin; import org.eclipse.jst.j2ee.internal.servertarget.IServerTargetConstants; import org.eclipse.wst.server.core.IRuntime; import org.eclipse.wst.server.core.ServerCore; /** * A class with some useful methods that support server targetting for Web projects. * * @author Pratik Shah */ public class ServerTargetUtil { private static final String defaultId = "com.ibm.etools.websphere.serverTarget.base.v51"; //$NON-NLS-1$ private static final String defaultExpressId = "com.ibm.etools.websphere.serverTarget.express.v51"; //$NON-NLS-1$ /** * @param targets * A list of IServerTargets * @return The index of the target server with the * {@link #getDefaultServerTargetId() default Id}; or 0, if it could not be found. */ public static int findDefaultServerTargetIndex(List targets) { int index = 0; for (int i = 0; i < targets.size(); i++) { IRuntime target = (IRuntime) targets.get(i); if (target.getId().equals(getDefaultServerTargetId())) { index = i; break; } } return index; } /** * @param target * The IServerTarget that has to be found in the given list; it can be * <code>null</code> * @param list * The List from which the IServerTarget has to be found * * @return The index of the given target in the given list; or 0, if the given target could not * be found in the given list. Two IServerTargets are considered to be equal if they * have the same ID. */ public static int findIndexOf(IRuntime target, List list) { int index = 0; if (target != null) { for (int i = 0; i < list.size(); i++) { IRuntime element = (IRuntime) list.get(i); if (element.equals(target)) { index = i; break; } } } return index; } /** * @return the Id of the target server that should be selected by default */ public static String getDefaultServerTargetId() { String id = defaultExpressId; if (J2EEPlugin.isEJBSupportAvailable()) { id = defaultId; } return id; } /** * @param isJ2EE13 * <code>true</code> if the constant for J2EE version 1.3 is desired * @return IServerTargetConstants.J2EE_12 or IServerTargetConstants.J2EE_13 */ public static String getJ2EEVersion(boolean isJ2EE13) { return isJ2EE13 ? IServerTargetConstants.J2EE_13 : IServerTargetConstants.J2EE_12; } /** * A convenient method that takes in a list of IServerTargets and returns an array of labels of * the IServerTargets in the given list. * * @param serverTargets * The list of IServerTargets * @return An array lof labels of the IServerTargets in the given list */ public static String[] getServerNames(List serverTargets) { String[] result = new String[serverTargets.size()]; for (int i = 0; i < result.length; i++) { IRuntime runtime = (IRuntime) serverTargets.get(i); result[i] = runtime.getName() + " (" + runtime.getRuntimeType().getName() + ")"; //$NON-NLS-1$ //$NON-NLS-2$ } return result; } /** * @param prjName * name of the project whose ServerTarget has to be retrieved; it can be * <code>null</code> * * @return the ServerTarget of the given project; <code>null</code> if the project does not * exist or its ServerTarget is not specified. */ public static IRuntime getServerTarget(String prjName) { if (prjName != null && !prjName.trim().equals("")) { //$NON-NLS-1$ IProject prj = ResourcesPlugin.getWorkspace().getRoot().getProject(prjName); if (prj != null && prj.exists()) { return ServerCore.getProjectProperties(prj).getRuntimeTarget(); } } return null; } }