Details
diff --git a/api/src/main/java/com/ning/billing/util/tag/TagDefinition.java b/api/src/main/java/com/ning/billing/util/tag/TagDefinition.java
index b00c46b..9471734 100644
--- a/api/src/main/java/com/ning/billing/util/tag/TagDefinition.java
+++ b/api/src/main/java/com/ning/billing/util/tag/TagDefinition.java
@@ -19,7 +19,7 @@ package com.ning.billing.util.tag;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.ning.billing.util.entity.Entity;
-// TODO: needs to surface created date, created by, isControlTag
+// TODO: needs to surface created date, created by
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@class")
public interface TagDefinition extends Entity {
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/TagDefinitionJson.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/TagDefinitionJson.java
index 86ce645..d9cf279 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/TagDefinitionJson.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/TagDefinitionJson.java
@@ -26,26 +26,34 @@ import com.fasterxml.jackson.annotation.JsonProperty;
public class TagDefinitionJson {
private final String id;
+ private final Boolean isControlTag;
private final String name;
private final String description;
@JsonCreator
public TagDefinitionJson(@JsonProperty("id") final String id,
+ @JsonProperty("isControlTag") final Boolean isControlTag,
@JsonProperty("name") final String name,
@JsonProperty("description") @Nullable final String description) {
this.id = id;
+ this.isControlTag = isControlTag;
this.name = name;
this.description = description;
}
public TagDefinitionJson(final TagDefinition tagDefinition) {
- this(tagDefinition.getId().toString(), tagDefinition.getName(), tagDefinition.getDescription());
+ this(tagDefinition.getId().toString(), tagDefinition.isControlTag(), tagDefinition.getName(), tagDefinition.getDescription());
}
public String getId() {
return id;
}
+ @JsonProperty("isControlTag")
+ public Boolean isControlTag() {
+ return isControlTag;
+ }
+
public String getName() {
return name;
}
@@ -55,49 +63,58 @@ public class TagDefinitionJson {
}
@Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result
- + ((description == null) ? 0 : description.hashCode());
- result = prime * result + ((name == null) ? 0 : name.hashCode());
- result = prime * result
- + ((id == null) ? 0 : id.hashCode());
- return result;
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("TagDefinitionJson");
+ sb.append("{id='").append(id).append('\'');
+ sb.append(", isControlTag=").append(isControlTag);
+ sb.append(", name='").append(name).append('\'');
+ sb.append(", description='").append(description).append('\'');
+ sb.append('}');
+ return sb.toString();
}
- public boolean equalsNoId(Object obj) {
- if (this == obj)
+ @Override
+ public boolean equals(final Object o) {
+ if (this == o) {
return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
+ }
+ if (o == null || getClass() != o.getClass()) {
return false;
- TagDefinitionJson other = (TagDefinitionJson) obj;
- if (description == null) {
- if (other.description != null)
- return false;
- } else if (!description.equals(other.description))
+ }
+
+ final TagDefinitionJson that = (TagDefinitionJson) o;
+
+ if (!equalsNoId(that)) {
return false;
- if (name == null) {
- if (other.name != null)
- return false;
- } else if (!name.equals(other.name))
+ }
+ if (id != null ? !id.equals(that.id) : that.id != null) {
return false;
+ }
+
return true;
}
- @Override
- public boolean equals(Object obj) {
- if (!equalsNoId(obj)) {
+ public boolean equalsNoId(final TagDefinitionJson that) {
+ if (description != null ? !description.equals(that.description) : that.description != null) {
+ return false;
+ }
+ if (isControlTag != null ? !isControlTag.equals(that.isControlTag) : that.isControlTag != null) {
return false;
}
- TagDefinitionJson other = (TagDefinitionJson) obj;
- if (id == null) {
- if (other.id != null)
- return false;
- } else if (!id.equals(other.id))
+ if (name != null ? !name.equals(that.name) : that.name != null) {
return false;
+ }
+
return true;
}
+
+ @Override
+ public int hashCode() {
+ int result = id != null ? id.hashCode() : 0;
+ result = 31 * result + (isControlTag != null ? isControlTag.hashCode() : 0);
+ result = 31 * result + (name != null ? name.hashCode() : 0);
+ result = 31 * result + (description != null ? description.hashCode() : 0);
+ return result;
+ }
}
diff --git a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestTagDefinitionJson.java b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestTagDefinitionJson.java
index 01850a0..2bfe258 100644
--- a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestTagDefinitionJson.java
+++ b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestTagDefinitionJson.java
@@ -21,26 +21,27 @@ import java.util.UUID;
import org.testng.Assert;
import org.testng.annotations.Test;
-import com.fasterxml.jackson.databind.ObjectMapper;
import com.ning.billing.jaxrs.JaxrsTestSuite;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
public class TestTagDefinitionJson extends JaxrsTestSuite {
+
private static final ObjectMapper mapper = new ObjectMapper();
@Test(groups = "fast")
public void testJson() throws Exception {
final String id = UUID.randomUUID().toString();
+ final Boolean isControlTag = true;
final String name = UUID.randomUUID().toString();
final String description = UUID.randomUUID().toString();
- final TagDefinitionJson tagDefinitionJson = new TagDefinitionJson(id, name, description);
+ final TagDefinitionJson tagDefinitionJson = new TagDefinitionJson(id, isControlTag, name, description);
+ Assert.assertEquals(tagDefinitionJson.getId(), id);
+ Assert.assertEquals(tagDefinitionJson.isControlTag(), isControlTag);
Assert.assertEquals(tagDefinitionJson.getName(), name);
Assert.assertEquals(tagDefinitionJson.getDescription(), description);
final String asJson = mapper.writeValueAsString(tagDefinitionJson);
- Assert.assertEquals(asJson, "{\"id\":\"" + tagDefinitionJson.getId() + "\"," +
- "\"name\":\"" + tagDefinitionJson.getName() + "\"," +
- "\"description\":\"" + tagDefinitionJson.getDescription() + "\"}");
-
final TagDefinitionJson fromJson = mapper.readValue(asJson, TagDefinitionJson.class);
Assert.assertEquals(fromJson, tagDefinitionJson);
}