implementation of the mechanism to truncate the string and the lists

This commit is contained in:
miconis 2020-04-24 14:36:42 +02:00
parent a73bc6cddc
commit 7bc00a3f5f
2 changed files with 23 additions and 5 deletions

View File

@ -29,7 +29,7 @@ public class MapDocumentUtil {
switch (fdef.getType()) { switch (fdef.getType()) {
case String: case String:
case Int: case Int:
stringField.put(fdef.getName(), new FieldValueImpl(fdef.getType(), fdef.getName(), getJPathString(fdef.getPath(), json))); stringField.put(fdef.getName(), new FieldValueImpl(fdef.getType(), fdef.getName(), truncateValue(getJPathString(fdef.getPath(), json), fdef.getLength())));
break; break;
case URL: case URL:
String uv = getJPathString(fdef.getPath(), json); String uv = getJPathString(fdef.getPath(), json);
@ -39,7 +39,7 @@ public class MapDocumentUtil {
case List: case List:
case JSON: case JSON:
FieldListImpl fi = new FieldListImpl(fdef.getName(), fdef.getType()); FieldListImpl fi = new FieldListImpl(fdef.getName(), fdef.getType());
getJPathList(fdef.getPath(), json, fdef.getType()) truncateList(getJPathList(fdef.getPath(), json, fdef.getType()), fdef.getSize())
.stream() .stream()
.map(item -> new FieldValueImpl(Type.String, fdef.getName(), item)) .map(item -> new FieldValueImpl(Type.String, fdef.getName(), item))
.forEach(fi::add); .forEach(fi::add);
@ -104,4 +104,19 @@ public class MapDocumentUtil {
} }
public static String truncateValue(String value, int length) {
if (length == -1 || length > value.length())
return value;
return value.substring(0, length);
}
public static List<String> truncateList(List<String> list, int size) {
if (size == -1 || size > list.size())
return list;
return list.subList(0, size);
}
} }

View File

@ -83,11 +83,14 @@ public class ConfigTest extends AbstractPaceTest {
final MapDocument mapDocument = MapDocumentUtil.asMapDocumentWithJPath(dedupConf, json); final MapDocument mapDocument = MapDocumentUtil.asMapDocumentWithJPath(dedupConf, json);
System.out.println("mapDocument = " + mapDocument.getFieldMap()); // System.out.println("mapDocument = " + mapDocument.getFieldMap());
JsonListMatch jsonListMatch = new JsonListMatch(params); // JsonListMatch jsonListMatch = new JsonListMatch(params);
//
// jsonListMatch.compare(mapDocument.getFieldMap().get("pid"), mapDocument.getFieldMap().get("pid"), null);
System.out.println("mapDocument = " + mapDocument.getFieldMap().get("title").stringValue());
jsonListMatch.compare(mapDocument.getFieldMap().get("pid"), mapDocument.getFieldMap().get("pid"), null);
} }