From 7ee16eb26c370a31f567c7ec600c918f57cb6833 Mon Sep 17 00:00:00 2001 From: Brian Rosenberger Date: Mon, 11 Feb 2019 17:02:11 +0000 Subject: [PATCH] Klaus Scherbach: Add handleStringList web service operation git-svn-id: https://brutex.net/svn/xservices/trunk@195 e7e49efb-446e-492e-b9ec-fcafc1997a86 --- .../brutex/xservices/ws/StringService.java | 11 ++++++-- .../xservices/ws/impl/StringServiceImpl.java | 27 ++++++++++++++++++- 2 files changed, 35 insertions(+), 3 deletions(-) diff --git a/src/java/net/brutex/xservices/ws/StringService.java b/src/java/net/brutex/xservices/ws/StringService.java index 306dfd5..7e4fafe 100644 --- a/src/java/net/brutex/xservices/ws/StringService.java +++ b/src/java/net/brutex/xservices/ws/StringService.java @@ -16,8 +16,6 @@ package net.brutex.xservices.ws; -import java.util.ArrayList; - import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebService; @@ -81,4 +79,13 @@ public abstract interface StringService @WebParam(name="string") @XmlElement(required=true) String paramString) throws XServicesFault; + @WebMethod(operationName="handleStringLists") + @WSDLDocumentation("Tokenizes all strings and then adds/removes tokens to/ from basestring") + public abstract String handleStringLists( + @WebParam(name="basestring") @XmlElement(required=true) String paramBaseString, + @WebParam(name="addstring") @XmlElement(required=true) String paramAddString, + @WebParam(name="removestring") @XmlElement(required=true) String paramRemoveString, + @WebParam(name="delimiter") @XmlElement(required=true) String delimiter) + throws XServicesFault; + } \ No newline at end of file diff --git a/src/java/net/brutex/xservices/ws/impl/StringServiceImpl.java b/src/java/net/brutex/xservices/ws/impl/StringServiceImpl.java index c114720..0a371e2 100644 --- a/src/java/net/brutex/xservices/ws/impl/StringServiceImpl.java +++ b/src/java/net/brutex/xservices/ws/impl/StringServiceImpl.java @@ -16,7 +16,8 @@ package net.brutex.xservices.ws.impl; -import java.util.ArrayList; +import java.util.HashSet; +import java.util.Iterator; import java.util.StringTokenizer; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -106,6 +107,30 @@ public class StringServiceImpl return value; } + public String handleStringLists(String basestring, String addstring, String removestring, String delimiter) throws XServicesFault { + StringTokenizer base = new StringTokenizer(basestring, delimiter); + StringTokenizer add = new StringTokenizer(addstring, delimiter); + StringTokenizer remove = new StringTokenizer(removestring, delimiter); + HashSet hset = new HashSet(); + String result = new String(); + + while(base.hasMoreTokens()) { + hset.add(base.nextToken().toString() ); + } + while(add.hasMoreTokens()) { + hset.add(add.nextToken().toString() ); + } + while(remove.hasMoreTokens()) { + hset.remove(remove.nextToken().toString() ); + } + Iterator hsetit = hset.iterator(); + while(hsetit.hasNext()) { + result = result.concat(hsetit.next().toString() + delimiter); + } + return result; + } + + private int getFlags(String flags) { int allflags = 0; if (flags.contains("i")) {