blob: 5003dc6214275a31c5844c78d189a7ce3e475791 [file] [log] [blame]
/*******************************************************************************
* 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;
}
}