View Javadoc
1   package org.kuali.common.httplib.api.model;
2   
3   import static org.kuali.common.jute.base.Precondition.checkNotBlank;
4   
5   import org.apache.http.NameValuePair;
6   
7   import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
8   
9   @JsonDeserialize(builder = NameValue.Builder.class)
10  public final class NameValue implements NameValuePair {
11  
12      private final String name;
13      private final String value;
14  
15      private NameValue(Builder builder) {
16          this.name = builder.name;
17          this.value = builder.value;
18      }
19  
20      public static NameValue build(String name, String value) {
21          return builder().withName(name).withValue(value).build();
22      }
23  
24      public static Builder builder() {
25          return new Builder();
26      }
27  
28      public static class Builder implements org.apache.commons.lang3.builder.Builder<NameValue> {
29  
30          private String name;
31          private String value;
32  
33          public Builder withName(String name) {
34              this.name = name;
35              return this;
36          }
37  
38          public Builder withValue(String value) {
39              this.value = value;
40              return this;
41          }
42  
43          @Override
44          public NameValue build() {
45              return validate(new NameValue(this));
46          }
47  
48          private static NameValue validate(NameValue instance) {
49              checkNotBlank(instance.name, "name");
50              checkNotBlank(instance.value, "value");
51              return instance;
52          }
53      }
54  
55      @Override
56      public String getName() {
57          return name;
58      }
59  
60      @Override
61      public String getValue() {
62          return value;
63      }
64  
65  }