@@ -25,7 +25,6 @@ public class CDXItem {
2525 public long offset ;
2626 public String filename ;
2727
28- @ SuppressWarnings ("StatementWithEmptyBody" )
2928 public static CDXItem parse (String json ) throws IOException {
3029 /*
3130{"url": "http://www.malthus.com.br/rw/forense/o_alcoolismo_e_a_lei.ppt", "mime": "application/vnd.ms-powerpoint", "status": "200",
@@ -36,34 +35,20 @@ public static CDXItem parse(String json) throws IOException {
3635 try (JsonParser jp = f .createParser (json )) {
3736 while (jp .nextToken () != JsonToken .END_OBJECT ) {
3837 if (jp .getCurrentToken () == JsonToken .VALUE_STRING ) {
39- String name = jp .getCurrentName ();
40- if ("url" .equals (name )) {
41- item .url = jp .getValueAsString ().toLowerCase ();
42- } else if ("mime" .equals (name )) {
43- item .mime = jp .getValueAsString ().toLowerCase ();
44- } else if ("status" .equals (name )) {
45- item .status = jp .getValueAsString ();
46- } else if ("digest" .equals (name )) {
47- item .digest = jp .getValueAsString ();
48- } else if ("length" .equals (name )) {
49- item .length = jp .getValueAsLong ();
50- } else if ("offset" .equals (name )) {
51- item .offset = jp .getValueAsLong ();
52- } else if ("filename" .equals (name )) {
53- item .filename = jp .getValueAsString ();
54- } else if ("mime-detected" .equals (name )) {
55- // ignored for now
56- } else if ("charset" .equals (name )) {
57- // ignored for now
58- } else if ("languages" .equals (name )) {
59- // ignored for now
60- } else if ("truncated" .equals (name )) {
61- // ignored for now
62- } else if ("redirect" .equals (name )) {
63- // ignored for now
64- } else {
65- throw new IllegalStateException ("Unknown field found: " + name );
66- }
38+ String name = jp .currentName ();
39+ switch (name ) {
40+ case "url" -> item .url = jp .getValueAsString ().toLowerCase ();
41+ case "mime" -> item .mime = jp .getValueAsString ().toLowerCase ();
42+ case "status" -> item .status = jp .getValueAsString ();
43+ case "digest" -> item .digest = jp .getValueAsString ();
44+ case "length" -> item .length = jp .getValueAsLong ();
45+ case "offset" -> item .offset = jp .getValueAsLong ();
46+ case "filename" -> item .filename = jp .getValueAsString ();
47+ case "mime-detected" , "redirect" , "truncated" , "languages" , "charset" -> {
48+ // ignored for now
49+ }
50+ case null , default -> throw new IllegalStateException ("Unknown field found: " + name );
51+ }
6752 }
6853 }
6954 }
0 commit comments