Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2014
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. package com.oracle.endeca;
  2.  
  3. import java.util.regex.Pattern;
  4. import org.jetel.component.DataRecordTransform;
  5. import org.jetel.data.DataField;
  6. import org.jetel.data.DataRecord;
  7. import org.jetel.exception.TransformException;
  8. import org.jetel.metadata.DataFieldType;
  9.  
  10. public class CleanStrings extends DataRecordTransform {
  11.  
  12. private static final Pattern INVALID_XML_10_CHARACTERS = Pattern
  13. .compile("[^\\u0009\\u000a\\u000d\\u0020-\\uD7FF\\uE000-"
  14. + "\\uFFFD\uD800\uDC00-\uDBFF\uDFFF]+");
  15.  
  16. @Override
  17. public int transform(DataRecord[] arg0, DataRecord[] arg1) throws TransformException {
  18. for (int i = arg0.length - 1; i >= 0; i--) {
  19. DataRecord rec = arg0[i];
  20. for (int j = rec.getNumFields() - 1; j >= 0; j--) {
  21. DataField field = rec.getField(j);
  22. if (!field.isNull()) {
  23. if (field.getMetadata().getDataType().equals(DataFieldType.STRING)) {
  24. String value = field.getValue().toString();
  25. if ("".equals(value)) {
  26. arg1[i].getField(j).setNull(true);
  27. } else {
  28. value = INVALID_XML_10_CHARACTERS.matcher(value.toString()).replaceAll("");
  29. arg1[i].getField(j).setValue(value);
  30. }
  31. } else {
  32. arg1[i].getField(j).setValue(field.getValue());
  33. }
  34. }
  35. }
  36. }
  37. return OK;
  38. }
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement