Change to EditN3Generator that will effect how all null and empty values get substituted into N3 on front end edits. NIHVIVO-3400

This commit is contained in:
briancaruso 2011-12-02 18:09:35 +00:00
parent c833f5d76c
commit d4e2ea9ebc
2 changed files with 45 additions and 3 deletions

View file

@ -52,10 +52,22 @@ public class EditN3GeneratorVTwo {
continue;
Set<String> keySet = varsToVals.keySet();
for (String key : keySet) {
List<String> value = varsToVals.get(key);
log.debug("The original value String is " + value.toString());
List<String> values = varsToVals.get(key);
if( values == null ){
log.debug("skipping var " + key + " because value List is null");
continue;
}else if( containsNullOrEmpty( values )){
String valueString = org.apache.commons.lang.StringUtils.join(value,
//bdc34: what should we do if the list contains nulls or empty strings?
//for now we just skip the whole key/var.
//Maybe it would be useful to strip the nulls+empties out of the list?
log.debug("skipping var " + key + " because it contains nulls or empty strings");
continue;
}
log.debug("The original value String is " + values.toString());
String valueString = org.apache.commons.lang.StringUtils.join(values,
">, <");
valueString = "<" + valueString + ">";
log.debug("The multiUri value String is " + valueString);
@ -66,6 +78,10 @@ public class EditN3GeneratorVTwo {
}
}
private boolean containsNullOrEmpty(List<String> values) {
return values != null && ( values.contains(null) || values.contains("") );
}
/**
* The List targets will be modified.
*/

View file

@ -154,8 +154,34 @@ public class EditN3GeneratorVTwoTest {
String not_expected = "<null>";
Assert.assertTrue("must not sub in <null>", !not_expected.equals(resultN3));
not_expected = "<>";
Assert.assertTrue("must not sub in <>", !not_expected.equals(resultN3));
Assert.assertEquals("?varXYZ", resultN3);
}
@Test
public void testSubInMultiUrisEmptyString(){
String n3 = "?varXYZ" ;
List<String> targets = new ArrayList<String>();
targets.add(n3);
Map<String,List<String>> keyToValues = new HashMap<String,List<String>>();
List<String> targetValue = new ArrayList<String>();
targetValue.add("");
keyToValues.put("varXYZ", targetValue);
gen.subInMultiUris(keyToValues, targets);
Assert.assertNotNull(targets);
Assert.assertEquals(1,targets.size());
String resultN3 = targets.get(0);
Assert.assertNotNull(resultN3);
Assert.assertTrue("String was empty", !resultN3.isEmpty());
Assert.assertEquals("?varXYZ", resultN3);
}
@Test
public void testSubInUrisNull(){