Author: rob.stryker(a)jboss.com
Date: 2012-02-02 10:31:46 -0500 (Thu, 02 Feb 2012)
New Revision: 38396
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.core/src/org/jboss/ide/eclipse/as/wtp/core/util/IServerFilter.java
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.core/src/org/jboss/ide/eclipse/as/wtp/core/util/ServerModelUtilities.java
Log:
https://issues.jboss.org/browse/JBIDE-10528 - utility method for xav
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.core/src/org/jboss/ide/eclipse/as/wtp/core/util/IServerFilter.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.core/src/org/jboss/ide/eclipse/as/wtp/core/util/IServerFilter.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.core/src/org/jboss/ide/eclipse/as/wtp/core/util/IServerFilter.java 2012-02-02
15:31:46 UTC (rev 38396)
@@ -0,0 +1,20 @@
+/*******************************************************************************
+ * Copyright (c) 2012 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:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.ide.eclipse.as.wtp.core.util;
+
+import org.eclipse.wst.server.core.IServer;
+
+/**
+ * An interface to filter out servers that are undesirable
+ */
+public interface IServerFilter {
+ public boolean accepts(IServer server);
+}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.core/src/org/jboss/ide/eclipse/as/wtp/core/util/ServerModelUtilities.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.core/src/org/jboss/ide/eclipse/as/wtp/core/util/ServerModelUtilities.java 2012-02-02
14:44:20 UTC (rev 38395)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.core/src/org/jboss/ide/eclipse/as/wtp/core/util/ServerModelUtilities.java 2012-02-02
15:31:46 UTC (rev 38396)
@@ -13,11 +13,14 @@
import java.util.ArrayList;
import java.util.Arrays;
+import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jst.server.core.IEnterpriseApplication;
import org.eclipse.jst.server.core.IJ2EEModule;
import org.eclipse.wst.server.core.IModule;
import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.ServerCore;
+import org.eclipse.wst.server.core.ServerUtil;
import org.jboss.ide.eclipse.as.wtp.core.modules.IJBTModule;
public class ServerModelUtilities {
@@ -109,4 +112,32 @@
return deleted;
}
+
+ public static IServer[] findServersFor(IProject p, IServerFilter filter) {
+ ArrayList<IServer> match = new ArrayList<IServer>();
+ IServer[] allServers = ServerCore.getServers();
+ IModule[] mods = ServerUtil.getModules(p);
+ for( int i = 0; i < allServers.length; i++ ) {
+ if( filter == null || filter.accepts(allServers[i])) {
+ IModule[] serversMods = allServers[i].getModules();
+ for( int j = 0; j < mods.length; j++ ) {
+ if( !isBinaryModule(mods[j]) && moduleListContainsMod(serversMods, mods[j]))
{
+ if( !match.contains(allServers[i])) {
+ match.add(allServers[i]);
+ }
+ }
+ }
+ }
+ }
+ return (IServer[]) match.toArray(new IServer[match.size()]);
+ }
+
+ public static boolean moduleListContainsMod(IModule[] list, IModule module) {
+ for( int i = 0; i < list.length; i++ ) {
+ if( list[i].equals(module))
+ return true;
+ }
+ return false;
+ }
+
}