From 116f0b5ffe8e6f6518968638c0814442c8986d2f Mon Sep 17 00:00:00 2001 From: Doug MacEachern Date: Wed, 30 May 2007 17:23:04 +0000 Subject: [PATCH] Add helpers for looking up ServiceConfig(s) by exe name --- .../src/org/hyperic/sigar/win32/Service.java | 69 ++++++++++++++++--- .../hyperic/sigar/win32/ServiceConfig.java | 36 +++++++++- .../src/org/hyperic/sigar/win32/Win32.java | 54 ++++++++++++++- 3 files changed, 146 insertions(+), 13 deletions(-) diff --git a/bindings/java/src/org/hyperic/sigar/win32/Service.java b/bindings/java/src/org/hyperic/sigar/win32/Service.java index c249e24c..b046221d 100644 --- a/bindings/java/src/org/hyperic/sigar/win32/Service.java +++ b/bindings/java/src/org/hyperic/sigar/win32/Service.java @@ -18,8 +18,11 @@ package org.hyperic.sigar.win32; +import java.io.File; +import java.io.FileFilter; import java.io.PrintStream; import java.util.Arrays; +import java.util.ArrayList; import java.util.List; public class Service extends Win32 { @@ -102,6 +105,51 @@ public class Service extends Win32 { public static native List getServiceNames() throws Win32Exception; + private static class ExeFilter implements FileFilter { + private String name; + private ExeFilter(String name) { + this.name = name.toLowerCase(); + } + + public boolean accept(File file) { + return this.name.equals(file.getName().toLowerCase()); + } + } + + public static List getServiceConfigs(String exe) + throws Win32Exception { + + return getServiceConfigs(new ExeFilter(exe)); + } + + public static List getServiceConfigs(FileFilter filter) + throws Win32Exception { + + List services = new ArrayList(); + List names = Service.getServiceNames(); + + for (int i=0; i