Skip to content

Commit eab5d7e

Browse files
committed
advanced text field extraction
1 parent 17cac5b commit eab5d7e

File tree

2 files changed

+47
-26
lines changed
  • client/src/main/java/com/regula/documentreader/webclient/model/ext
  • example/src/main/java/com/regula/documentreader/webclient/example

2 files changed

+47
-26
lines changed
Lines changed: 46 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,85 @@
11
package com.regula.documentreader.webclient.model.ext;
22

3+
import com.regula.documentreader.webclient.model.LCID;
4+
5+
import java.util.Objects;
36
import javax.annotation.Nullable;
47

58
public class Text extends com.regula.documentreader.webclient.model.Text {
69

710
@Nullable
8-
public TextField getField(int fieldType, int lcid) {
11+
public TextField getField(int fieldType) {
12+
TextField result = null;
913
for (TextField field : getFieldList()) {
10-
if (field.getFieldType() == fieldType && field.getLcid() == lcid) {
14+
if (field.getFieldType() == fieldType && field.getLcid() == LCID.LATIN) {
1115
return field;
1216
}
17+
if (result == null && field.getFieldType() == fieldType) {
18+
result = field;
19+
}
1320
}
14-
return null;
21+
return result;
1522
}
1623

1724
@Nullable
18-
public TextField getField(int fieldType) {
19-
return getField(fieldType, 0);
20-
}
21-
22-
@Nullable
23-
public String getFieldValue(int fieldType, int lcid) {
24-
TextField field = getField(fieldType, lcid);
25-
if (field != null) {
26-
return field.getValue();
25+
public TextField getField(int fieldType, int lcid) {
26+
for (TextField field : getFieldList()) {
27+
if (field.getFieldType() == fieldType && field.getLcid() == lcid) {
28+
return field;
29+
}
2730
}
2831
return null;
2932
}
3033

3134
@Nullable
32-
public String getFieldValue(int fieldType) {
33-
return getFieldValue(fieldType, 0);
35+
public TextField getField(String fieldName) {
36+
TextField result = null;
37+
for (TextField field : getFieldList()) {
38+
if (Objects.equals(field.getFieldName(), fieldName) && field.getLcid() == LCID.LATIN) {
39+
return field;
40+
}
41+
if (result == null && Objects.equals(field.getFieldName(), fieldName)) {
42+
result = field;
43+
}
44+
}
45+
return result;
3446
}
3547

3648
@Nullable
37-
public TextField getFieldByName(String fieldName, int lcid) {
49+
public TextField getField(String fieldName, int lcid) {
3850
for (TextField field : getFieldList()) {
39-
if (field.getFieldName().equals(fieldName) && field.getLcid() == lcid) {
51+
if (Objects.equals(field.getFieldName(), fieldName) && field.getLcid() == lcid) {
4052
return field;
4153
}
4254
}
4355
return null;
4456
}
4557

4658
@Nullable
47-
public TextField getFieldByName(String fieldName) {
48-
return getFieldByName(fieldName, 0);
59+
public String getFieldValue(int fieldType) {
60+
TextField field = getField(fieldType);
61+
if (field != null) return field.getValue();
62+
return null;
63+
}
64+
65+
@Nullable
66+
public String getFieldValue(int fieldType, int lcid) {
67+
TextField field = getField(fieldType, lcid);
68+
if (field != null) return field.getValue();
69+
return null;
4970
}
5071

5172
@Nullable
52-
public String getFieldValueByName(String fieldName, int lcid) {
53-
TextField field = getFieldByName(fieldName, lcid);
54-
if (field != null) {
55-
return field.getValue();
56-
}
73+
public String getFieldValue(String fieldName) {
74+
TextField field = getField(fieldName);
75+
if (field != null) return field.getValue();
5776
return null;
5877
}
5978

6079
@Nullable
61-
public String getFieldValueByName(String fieldName) {
62-
return getFieldValueByName(fieldName, 0);
80+
public String getFieldValue(String fieldName, int lcid) {
81+
TextField field = getField(fieldName, lcid);
82+
if (field != null) return field.getValue();
83+
return null;
6384
}
6485
}

example/src/main/java/com/regula/documentreader/webclient/example/Main.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public static void main(String[] args) throws IOException, ApiException {
5555
var docOpticalTextStatus = status.getDetailsOptical().getText();
5656

5757
var docNumberField = response.text().getField(DOCUMENT_NUMBER);
58-
var docNumberFieldByName = response.text().getFieldByName("Document Number");
58+
var docNumberFieldByName = response.text().getField("Document Number");
5959

6060
var docNumberVisual = docNumberField.getValue(Source.VISUAL);
6161
var docNumberMrz = docNumberField.getValue(Source.MRZ);

0 commit comments

Comments
 (0)