Commit d35af3d5a4fdc8d57b3ffd13cfc64905a5c0e451

Authored by Tiago Guimarães
1 parent 83b21e1548
Exists in BadCharsCTask

More Documentation

dspace-api/src/main/java/pt/uminho/sdum/dspace/curationtasks/CheckBadChars.java
@@ -11,6 +11,8 @@ import java.sql.SQLException; @@ -11,6 +11,8 @@ import java.sql.SQLException;
11 * @author tmmguimaraes on 22/07/2016. 11 * @author tmmguimaraes on 22/07/2016.
12 * Percorre todos os campos de metadados, char a char, à procura de caracteres inválidos para XML. 12 * Percorre todos os campos de metadados, char a char, à procura de caracteres inválidos para XML.
13 * no método isBadXMLChar está o intervalo. 13 * no método isBadXMLChar está o intervalo.
  14 + *
  15 + * A classe Distributor é o que faz a curation task percorrer todos os items.
14 */ 16 */
15 17
16 @Distributive 18 @Distributive
@@ -20,6 +22,7 @@ public class CheckBadChars extends Distributor { @@ -20,6 +22,7 @@ public class CheckBadChars extends Distributor {
20 String handle = item.getHandle(); 22 String handle = item.getHandle();
21 StringBuilder res = new StringBuilder(); 23 StringBuilder res = new StringBuilder();
22 24
  25 + //Vais buscar todos os metadados
23 Metadatum[] values = item.getMetadata(Item.ANY, Item.ANY, Item.ANY, Item.ANY); 26 Metadatum[] values = item.getMetadata(Item.ANY, Item.ANY, Item.ANY, Item.ANY);
24 27
25 for (Metadatum metadatum : values) { 28 for (Metadatum metadatum : values) {
@@ -27,11 +30,14 @@ public class CheckBadChars extends Distributor { @@ -27,11 +30,14 @@ public class CheckBadChars extends Distributor {
27 boolean hasBadChar = false; 30 boolean hasBadChar = false;
28 int i = 0; 31 int i = 0;
29 32
  33 + //percorre char a char dum campo de metadados
30 while (!hasBadChar && i < buffer.length) 34 while (!hasBadChar && i < buffer.length)
31 if (isBadXMLChar(buffer[i++])) 35 if (isBadXMLChar(buffer[i++]))
32 hasBadChar = true; 36 hasBadChar = true;
33 37
34 if (hasBadChar) { 38 if (hasBadChar) {
  39 + //estas 5 linhas é para verificar se o campo de metadados tem qualifier
  40 + //para evitar null pointer exception quando é um campo sem qualifier.
35 String end = metadatum.qualifier; 41 String end = metadatum.qualifier;
36 if (end == null || end.equals("")) 42 if (end == null || end.equals(""))
37 end = ""; 43 end = "";