/xservices/trunk/src/java/net/brutex/xservices/types/StringMatchType.java |
---|
0,0 → 1,50 |
/* |
* Copyright 2012 Brian Rosenberger (Brutex Network) |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
package net.brutex.xservices.types; |
import java.math.BigInteger; |
import java.util.ArrayList; |
import java.util.List; |
import javax.xml.bind.annotation.XmlType; |
import com.sun.xml.txw2.annotation.XmlElement; |
/** |
* |
* @author Brian Rosenberger, bru@brutex.de |
*/ |
@XmlType |
public class StringMatchType { |
public final List<StringMatchDetails> stringlist = new ArrayList<StringMatchDetails>(); |
public int size=0; |
public StringMatchType() {} |
public synchronized void addStringMatch(StringMatchDetails match) { |
this.stringlist.add(match); |
this.size++; |
} |
public synchronized void addStringMatch(long start, long end, String content) { |
StringMatchDetails details = new StringMatchDetails(start, end, content); |
this.addStringMatch( details ); |
} |
} |
Property changes: |
Added: svn:mime-type |
+text/plain |
\ No newline at end of property |
/xservices/trunk/src/java/net/brutex/xservices/types/StringMatchDetails.java |
---|
0,0 → 1,32 |
/* |
* Copyright 2012 Brian Rosenberger (Brutex Network) |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
package net.brutex.xservices.types; |
public class StringMatchDetails { |
public long startPosition; |
public long endPosition; |
public String content; |
public StringMatchDetails() { |
} |
public StringMatchDetails(long start, long end, String content) { |
this.startPosition = start; |
this.endPosition = end; |
this.content = content; |
} |
} |
Property changes: |
Added: svn:mime-type |
+text/plain |
\ No newline at end of property |
/xservices/trunk/src/java/net/brutex/xservices/ws/impl/StringServiceImpl.java |
---|
20,6 → 20,7 |
import javax.jws.WebService; |
import net.brutex.xservices.types.StringMatchType; |
import net.brutex.xservices.types.StringReplaceType; |
import net.brutex.xservices.util.BrutexNamespaces; |
import net.brutex.xservices.ws.StringService; |
36,10 → 37,7 |
public StringReplaceType replaceRegEx(String res, String search, |
String replace, String flags) throws XServicesFault { |
try { |
int allflags = 0; |
if (flags.contains("i")) { |
allflags = allflags + Pattern.CASE_INSENSITIVE; |
} |
int allflags = getFlags(flags); |
Pattern pattern = Pattern.compile(search, allflags); |
Matcher matcher = pattern.matcher(res); |
int count = 0; |
60,4 → 58,40 |
} |
@Override |
public StringMatchType matchRegEx(String res, String search, String flags) |
throws XServicesFault { |
int allflags = getFlags(flags); |
Pattern pattern = Pattern.compile(search, allflags); |
Matcher matcher = pattern.matcher(res); |
StringMatchType rm = new StringMatchType(); |
while (matcher.find()) { |
rm.addStringMatch(matcher.start(), matcher.end(), matcher.group()); |
} |
return rm; |
} |
private int getFlags(String flags) { |
int allflags = 0; |
if(flags.contains("i")) { |
allflags = allflags + Pattern.CASE_INSENSITIVE; |
} |
if(flags.contains("m")) { |
allflags = allflags + Pattern.MULTILINE; |
} |
if(flags.contains("u")) { |
allflags = allflags + Pattern.UNICODE_CASE; |
} |
if(flags.contains("s")) { |
allflags = allflags + Pattern.DOTALL; |
} |
if(flags.contains("d")) { |
allflags = allflags + Pattern.UNIX_LINES; |
} |
if(flags.contains("x")) { |
allflags = allflags + Pattern.COMMENTS; |
} |
return allflags; |
} |
} |
/xservices/trunk/src/java/net/brutex/xservices/ws/StringService.java |
---|
21,6 → 21,7 |
import javax.jws.WebService; |
import net.brutex.xservices.types.ReturnCode; |
import net.brutex.xservices.types.StringMatchType; |
import net.brutex.xservices.types.StringReplaceType; |
import net.brutex.xservices.types.TargetNodeType; |
import net.brutex.xservices.types.ant.AttachmentType; |
42,6 → 43,7 |
public static final String SERVICE_NAME = "StringService"; |
final String OPERATION_REPLACEREGEX = "replaceRegEx"; |
final String OPERATION_MATCHREGEX = "matchRegEx"; |
final static String PARAM_STRING = "string"; |
67,5 → 69,12 |
@WebParam(name = PARAM_REPLACE) String replace, |
@WebParam(name = PARAM_FLAGS) String flags) throws XServicesFault; |
@WebMethod(operationName=OPERATION_MATCHREGEX) |
@WSDLDocumentation(value="Match text based data") |
public abstract StringMatchType matchRegEx( |
@WebParam(name = PARAM_STRING) String res, |
@WebParam(name = PARAM_SEARCH) String search, |
@WebParam(name = PARAM_FLAGS) String flags) throws XServicesFault; |
} |