Skip to content

Commit 141505f

Browse files
author
john
committed
PB-2661. Change SDK signer language parameter from string to Locale
1 parent 2a7250c commit 141505f

6 files changed

Lines changed: 38 additions & 21 deletions

File tree

sdk/src/main/java/com/silanis/esl/sdk/Signer.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import java.io.Serializable;
44
import java.util.List;
5+
import java.util.Locale;
56

67
/**
78
* <p>The Signer class contains all the information about an user that is supposed to sign a document.</p>
@@ -18,7 +19,7 @@ public class Signer implements Serializable {
1819
private int signingOrder;
1920
private String title;
2021
private String company;
21-
private String language;
22+
private Locale language;
2223
private boolean canChangeSigner;
2324
private String message;
2425
private boolean deliverSignedDocumentsByEmail;
@@ -191,7 +192,7 @@ public void setCompany(String company) {
191192
*
192193
* @return the signer's language
193194
*/
194-
public String getLanguage() {
195+
public Locale getLanguage() {
195196
return language;
196197
}
197198

@@ -200,7 +201,7 @@ public String getLanguage() {
200201
*
201202
* @param language the signer's language
202203
*/
203-
public void setLanguage(String language) {
204+
public void setLanguage(Locale language) {
204205
this.language = language;
205206
}
206207

sdk/src/main/java/com/silanis/esl/sdk/builder/SignerBuilder.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import java.util.ArrayList;
77
import java.util.List;
8+
import java.util.Locale;
89

910
/**
1011
* <p>The SignerBuilder class is a convenient class used to create and customize a signer.</p>
@@ -22,7 +23,7 @@ final public class SignerBuilder {
2223
private Authentication authentication = null;
2324
private String title = "";
2425
private String company = "";
25-
private String language = "";
26+
private Locale language;
2627
private boolean canChangeSigner;
2728
private String message = "";
2829
private boolean deliverSignedDocumentsByEmail;
@@ -303,7 +304,7 @@ public SignerBuilder withCompany(String company) {
303304
* @return the signer builder object itself
304305
* @throws EslException throws an exception if signer is a group signer.
305306
*/
306-
public SignerBuilder withLanguage(String language) {
307+
public SignerBuilder withLanguage(Locale language) {
307308
Asserts.genericAssert(!isGroupSigner(), "language can not be set for a group signer");
308309
this.language = language;
309310
return this;

sdk/src/main/java/com/silanis/esl/sdk/examples/BasicPackageCreationExample.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.silanis.esl.sdk.builder.FieldBuilder;
66

77
import java.util.Date;
8+
import java.util.Locale;
89

910
import static com.silanis.esl.sdk.builder.DocumentBuilder.newDocumentWithName;
1011
import static com.silanis.esl.sdk.builder.PackageBuilder.newPackageNamed;
@@ -29,7 +30,7 @@ public class BasicPackageCreationExample extends SDKSample {
2930
public static final String SIGNER1_LAST_NAME = "Smith";
3031
public static final String SIGNER1_TITLE = "Managing Director";
3132
public static final String SIGNER1_COMPANY = "Acme Inc.";
32-
public static final String SIGNER1_LANGUAGE = "fr";
33+
public static final Locale SIGNER1_LANGUAGE = Locale.SIMPLIFIED_CHINESE;
3334

3435
public static final String SIGNER2_FIRST_NAME = "Patty";
3536
public static final String SIGNER2_LAST_NAME = "Galant";

sdk/src/main/java/com/silanis/esl/sdk/examples/UpdateSignerExample.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import com.silanis.esl.sdk.Signer;
77
import com.silanis.esl.sdk.builder.DocumentPackageSettingsBuilder;
88

9+
import java.util.Locale;
10+
911
import static com.silanis.esl.sdk.builder.DocumentBuilder.newDocumentWithName;
1012
import static com.silanis.esl.sdk.builder.PackageBuilder.newPackageNamed;
1113
import static com.silanis.esl.sdk.builder.SignatureBuilder.signatureFor;
@@ -26,8 +28,8 @@ public class UpdateSignerExample extends SDKSample {
2628
public static final String SIGNER2_CUSTOM_ID = "signerId2";
2729
public static final String SIGNER2_FIRST_NAME = "Patty";
2830
public static final String SIGNER2_LAST_NAME = "Galant";
29-
public static final String SIGNER2_LANGUAGE = "fr";
30-
public static final String SIGNER2_UPDATE_LANGUAGE = "ko";
31+
public static final Locale SIGNER2_LANGUAGE = Locale.FRENCH;
32+
public static final Locale SIGNER2_UPDATE_LANGUAGE = Locale.SIMPLIFIED_CHINESE;
3133

3234
public static final String SIGNER3_FIRST_NAME = "John2";
3335
public static final String SIGNER3_LAST_NAME = "Smith2";

sdk/src/main/java/com/silanis/esl/sdk/internal/converter/SignerConverter.java

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
package com.silanis.esl.sdk.internal.converter;
22

3-
import com.silanis.esl.api.model.Auth;
43
import com.silanis.esl.api.model.BaseMessage;
54
import com.silanis.esl.api.model.Delivery;
65
import com.silanis.esl.api.model.Role;
7-
import com.silanis.esl.sdk.Authentication;
86
import com.silanis.esl.sdk.GroupId;
97
import com.silanis.esl.sdk.Placeholder;
108
import com.silanis.esl.sdk.Signer;
119
import com.silanis.esl.sdk.builder.SignerBuilder;
1210
import com.silanis.esl.sdk.internal.Asserts;
11+
import org.apache.commons.lang3.LocaleUtils;
1312
import org.apache.commons.lang3.StringUtils;
1413

15-
import java.util.List;
14+
import java.util.Locale;
15+
16+
import static org.apache.commons.lang3.StringUtils.isBlank;
1617

1718
/**
1819
* User: jessica
@@ -65,14 +66,17 @@ public com.silanis.esl.api.model.Signer toAPISigner() {
6566
.setLastName(sdkSigner.getLastName())
6667
.setTitle(sdkSigner.getTitle())
6768
.setCompany(sdkSigner.getCompany())
68-
.setLanguage(sdkSigner.getLanguage())
6969
.setKnowledgeBasedAuthentication(new KnowledgeBasedAuthenticationConverter(sdkSigner.getKnowledgeBasedAuthentication()).toAPIKnowledgeBasedAuthentication())
7070
.setDelivery(new Delivery().setEmail(sdkSigner.isDeliverSignedDocumentsByEmail()));
7171

7272
} else {
7373
result.setGroup(new com.silanis.esl.api.model.Group().setId(sdkSigner.getGroupId().toString()));
7474
}
7575

76+
if ( sdkSigner.getLanguage() != null ) {
77+
result.setLanguage(sdkSigner.getLanguage().toString());
78+
}
79+
7680
if ( sdkSigner.getId() != null ) {
7781
result.setId( sdkSigner.getId() );
7882
}
@@ -87,11 +91,11 @@ private Signer newRegularSignerFromAPIRole(){
8791

8892
if ( apiSigner.getGroup() == null ) {
8993
signerBuilder = SignerBuilder.newSignerWithEmail(apiSigner.getEmail())
90-
.withFirstName( apiSigner.getFirstName() )
91-
.withLastName( apiSigner.getLastName() )
94+
.withFirstName( apiSigner.getFirstName())
95+
.withLastName( apiSigner.getLastName())
9296
.withCompany( apiSigner.getCompany() )
93-
.withLanguage( apiSigner.getLanguage() )
94-
.withTitle( apiSigner.getTitle() )
97+
.withLanguage( convertToLocale(apiSigner.getLanguage()) )
98+
.withTitle(apiSigner.getTitle())
9599
.challengedWithKnowledgeBasedAuthentication(new KnowledgeBasedAuthenticationConverter(apiSigner.getKnowledgeBasedAuthentication()).toSDKKnowledgeBasedAuthentication());
96100
if ( apiSigner.getDelivery() != null && apiSigner.getDelivery().getEmail() ) {
97101
signerBuilder.deliverSignedDocumentsByEmail();
@@ -129,6 +133,13 @@ private Signer newRegularSignerFromAPIRole(){
129133
return signer;
130134
}
131135

136+
private Locale convertToLocale(String lang) {
137+
if(isBlank(lang))
138+
return new Locale("");
139+
140+
return LocaleUtils.toLocale(apiSigner.getLanguage());
141+
}
142+
132143
private Signer newSignerPlaceholderFromAPIRole(){
133144
Asserts.notNullOrEmpty(apiRole.getId(), "role.id");
134145

sdk/src/test/java/com/silanis/esl/sdk/internal/converter/SignerConverterTest.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
import java.util.ArrayList;
1010
import java.util.List;
11+
import java.util.Locale;
1112
import java.util.UUID;
1213

1314
import static org.hamcrest.MatcherAssert.assertThat;
@@ -99,7 +100,7 @@ public void convertAPIToSDK() {
99100
assertThat("Last name was not correctly set", apiSigner1.getLastName(), is(equalTo(sdkSigner1.getLastName())));
100101
assertThat("Company was not correctly set", apiSigner1.getCompany(), is(equalTo(sdkSigner1.getCompany())));
101102
assertThat("Title was not correctly set", apiSigner1.getTitle(), is(equalTo(sdkSigner1.getTitle())));
102-
assertThat("Language was not correctly set", apiSigner1.getLanguage(), is(equalTo(sdkSigner1.getLanguage())));
103+
assertThat("Language was not correctly set", apiSigner1.getLanguage(), is(equalTo(sdkSigner1.getLanguage().getLanguage())));
103104
assertThat("Signer ID was not correctly set", apiRole.getId(), is(equalTo(sdkSigner1.getId())));
104105
assertThat("Signing order was not correctly set", apiRole.getIndex(), is(equalTo(sdkSigner1.getSigningOrder())));
105106
assertThat("Can change signer flag was not correctly set", apiRole.getReassign(), is(equalTo(sdkSigner1.canChangeSigner())));
@@ -147,7 +148,7 @@ public void convertSDKSignerToAPIRole() {
147148
assertThat("Title was not correctly set", apiRole.getSigners().get(0).getTitle(),
148149
is(equalTo(sdkSigner1.getTitle())));
149150
assertThat("Language was not correctly set", apiRole.getSigners().get(0).getLanguage(),
150-
is(equalTo(sdkSigner1.getLanguage())));
151+
is(equalTo(sdkSigner1.getLanguage().getLanguage())));
151152

152153
assertThat("ID was not set correctly", apiRole.getId().toString(), is(equalTo(sdkSigner1.getId())));
153154
assertThat("Name was not set correctly", apiRole.getName().toString(), is(equalTo(sdkSigner1.getId())));
@@ -167,7 +168,7 @@ public void convertSDKSignerWithNullEntriesToAPIRole() {
167168
.deliverSignedDocumentsByEmail()
168169
.signingOrder(1)
169170
.withCompany("ABC Inc.")
170-
.withLanguage("fr")
171+
.withLanguage(Locale.FRENCH)
171172
.withFirstName("first name")
172173
.withLastName("last name")
173174
.withTitle("Miss")
@@ -187,7 +188,7 @@ public void convertSDKSignerWithNullEntriesToAPIRole() {
187188
assertThat("Title was not correctly set", apiRole.getSigners().get(0).getTitle(),
188189
is(equalTo(sdkSigner1.getTitle())));
189190
assertThat("Language was not correctly set", apiRole.getSigners().get(0).getLanguage(),
190-
is(equalTo(sdkSigner1.getLanguage())));
191+
is(equalTo(sdkSigner1.getLanguage().getLanguage())));
191192

192193
assertThat("ID was not set correctly", apiRole.getId().toString(), is(equalTo(roleId)));
193194
assertThat("Name was not set correctly", apiRole.getName().toString(), is(equalTo(roleId)));
@@ -206,7 +207,7 @@ private com.silanis.esl.sdk.Signer createTypicalSDKSigner() {
206207
.deliverSignedDocumentsByEmail()
207208
.signingOrder(1)
208209
.withCompany("ABC Inc.")
209-
.withLanguage("fr")
210+
.withLanguage(Locale.FRENCH)
210211
.withCustomId("1")
211212
.withFirstName("first name")
212213
.withLastName("last name")

0 commit comments

Comments
 (0)