You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devicemap.apache.org by re...@apache.org on 2015/07/31 15:14:18 UTC
svn commit: r1693591 - in /devicemap/trunk/clients/2.0/reference/src:
DeviceMapClient.java Pattern.java TransformerReplaceFirst.java
TransformerSubstring.java
Author: rezan
Date: Fri Jul 31 13:14:18 2015
New Revision: 1693591
URL: http://svn.apache.org/r1693591
Log:
final 2 transformers
Added:
devicemap/trunk/clients/2.0/reference/src/TransformerReplaceFirst.java
devicemap/trunk/clients/2.0/reference/src/TransformerSubstring.java
Modified:
devicemap/trunk/clients/2.0/reference/src/DeviceMapClient.java
devicemap/trunk/clients/2.0/reference/src/Pattern.java
Modified: devicemap/trunk/clients/2.0/reference/src/DeviceMapClient.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/clients/2.0/reference/src/DeviceMapClient.java?rev=1693591&r1=1693590&r2=1693591&view=diff
==============================================================================
--- devicemap/trunk/clients/2.0/reference/src/DeviceMapClient.java (original)
+++ devicemap/trunk/clients/2.0/reference/src/DeviceMapClient.java Fri Jul 31 13:14:18 2015
@@ -20,7 +20,6 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -33,10 +32,12 @@ public class DeviceMapClient {
private String domain;
private String domainVersion;
+ //INPUT PARSING
private List<Transformer> transformers;
private List<String> tokenSeperators;
private int ngramConcatSize;
+ //PATTERN MATCHING
private Map<String, List<Pattern>> patterns;
private Map<String, Attributes> attributes;
Modified: devicemap/trunk/clients/2.0/reference/src/Pattern.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/clients/2.0/reference/src/Pattern.java?rev=1693591&r1=1693590&r2=1693591&view=diff
==============================================================================
--- devicemap/trunk/clients/2.0/reference/src/Pattern.java (original)
+++ devicemap/trunk/clients/2.0/reference/src/Pattern.java Fri Jul 31 13:14:18 2015
@@ -127,6 +127,12 @@ public class Pattern {
return rank;
}
+ //LENGTH OF MATCHED TOKENS, FOR RANKING
+ //TODO
+ public long getMatchedLength() {
+ return 0;
+ }
+
@Override
public String toString() {
return patternId;
Added: devicemap/trunk/clients/2.0/reference/src/TransformerReplaceFirst.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/clients/2.0/reference/src/TransformerReplaceFirst.java?rev=1693591&view=auto
==============================================================================
--- devicemap/trunk/clients/2.0/reference/src/TransformerReplaceFirst.java (added)
+++ devicemap/trunk/clients/2.0/reference/src/TransformerReplaceFirst.java Fri Jul 31 13:14:18 2015
@@ -0,0 +1,54 @@
+/*
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.
+ */
+
+import org.codehaus.jackson.JsonNode;
+
+public class TransformerReplaceFirst implements Transformer {
+ private final String find;
+ private final String replaceWith;
+
+ public TransformerReplaceFirst(JsonNode json) throws Exception {
+ if(JsonFile.empty(json, "find")) {
+ throw new Exception("TransformerReplaceFirst find not defined");
+ }
+
+ if(json.get("replaceWith") == null) {
+ throw new Exception("TransformerReplaceFirst replaceWith not defined");
+ }
+
+ find = json.get("find").asText();
+ replaceWith = json.get("replaceWith").asText();
+ }
+
+ @Override
+ public String transform(String input) {
+ int pos = input.indexOf(find);
+
+ if(pos > 0) {
+ return input.substring(0, pos) + replaceWith + input.substring(pos + find.length());
+ }
+
+ return input;
+ }
+
+ @Override
+ public String toString() {
+ return "TransformerReplaceFirst, find: '" + find + "', replaceWith: '" + replaceWith + "'";
+ }
+}
Added: devicemap/trunk/clients/2.0/reference/src/TransformerSubstring.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/clients/2.0/reference/src/TransformerSubstring.java?rev=1693591&view=auto
==============================================================================
--- devicemap/trunk/clients/2.0/reference/src/TransformerSubstring.java (added)
+++ devicemap/trunk/clients/2.0/reference/src/TransformerSubstring.java Fri Jul 31 13:14:18 2015
@@ -0,0 +1,67 @@
+/*
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.
+ */
+
+import org.codehaus.jackson.JsonNode;
+
+public class TransformerSubstring implements Transformer {
+ private final int start;
+ private final int maxLength;
+
+ public TransformerSubstring(JsonNode json) throws Exception {
+ if(JsonFile.empty(json, "start")) {
+ throw new Exception("TransformerSubstring start not defined");
+ }
+
+ start = Integer.parseInt(json.get("start").asText());
+
+ if(start < 0) {
+ throw new Exception("Invalid value of start for TransformerSubstring: " + start);
+ }
+
+ String maxLengthStr = "-1";
+
+ if(!JsonFile.empty(json, "maxLength")) {
+ maxLengthStr = json.get("maxLength").asText();
+
+ if(Integer.parseInt(maxLengthStr) < 0) {
+ throw new Exception("Invalid value of maxLength for TransformerSubstring: " + maxLengthStr);
+ }
+ }
+
+ maxLength = Integer.parseInt(maxLengthStr);
+ }
+
+ @Override
+ public String transform(String input) throws Exception {
+ if(start >= input.length()) {
+ throw new Exception("start position out of range: " + start);
+ }
+
+ if(maxLength >= 0 && (maxLength + start) <= input.length()) {
+ return input.substring(start, maxLength + start);
+ }
+
+ return input.substring(start);
+ }
+
+ @Override
+ public String toString() {
+ return "TransformerSubstring, start: '" + start + (maxLength >= 0 ? "', maxLength: " + maxLength : "");
+ }
+}