Skip to content

Commit

Permalink
Change JsonStringBuilder in JacksonEvent to be non static for ease-of…
Browse files Browse the repository at this point in the history
…-use (#2666)

* Change JsonStringBuilder in JacksonEvent to be non static for ease-of-use

Signed-off-by: Krishna Kondaka <krishkdk@amazon.com>

* Fixed to pass code coverage test

Signed-off-by: Krishna Kondaka <krishkdk@amazon.com>

* Made JsonStringBuilder constructor private

Signed-off-by: Krishna Kondaka <krishkdk@amazon.com>

---------

Signed-off-by: Krishna Kondaka <krishkdk@amazon.com>
  • Loading branch information
kkondaka committed May 9, 2023
1 parent a128aef commit 71415bb
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -120,4 +120,34 @@ public interface Event extends Serializable {
* @since 2.2
*/
EventHandle getEventHandle();

JsonStringBuilder jsonBuilder();

public abstract class JsonStringBuilder {
private String tagsKey;

/**
* @param key key to be used for tags
* @return JsonStringString with tags included
* @since 2.3
*/
public JsonStringBuilder includeTags(String key) {
this.tagsKey = key;
return this;
}

/**
* @return key used for tags
* @since 2.3
*/
public String getTagsKey() {
return tagsKey;
}

/**
* @return json string
* @since 2.3
*/
public abstract String toJsonString();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -416,8 +416,8 @@ public Builder getThis() {
};
}

public static JsonStringBuilder jsonBuilder() {
return new JsonStringBuilder();
public JsonStringBuilder jsonBuilder() {
return new JsonStringBuilder(this);
}

public static JacksonEvent fromEvent(final Event event) {
Expand Down Expand Up @@ -517,25 +517,17 @@ public JacksonEvent build() {
}
}

public static class JsonStringBuilder {
private String tagsKey;
private JacksonEvent event;
public class JsonStringBuilder extends Event.JsonStringBuilder {
private Event event;

public JsonStringBuilder withEvent(final JacksonEvent event) {
private JsonStringBuilder(final Event event) {
checkNotNull(event, "event cannot be null");
this.event = event;
return this;
}

public JsonStringBuilder includeTags(String key) {
tagsKey = key;
return this;
}

public String toJsonString() {
if (event == null) {
return null;
}
final String jsonString = event.toJsonString().trim();
final String tagsKey = getTagsKey();
if(tagsKey != null) {
final JsonNode tagsNode = mapper.valueToTree(event.getMetadata().getTags());
return jsonString.substring(0, jsonString.length()-1) + ",\""+tagsKey+"\":" + tagsNode.toString()+"}";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -650,9 +650,8 @@ void testJsonStringBuilder() {
eventMetadata.addTag("tag1");
eventMetadata.addTag("tag2");
final String expectedJsonString = "{\"foo\":\"bar\",\"tags\":[\"tag1\",\"tag2\"]}";
assertThat(JacksonEvent.jsonBuilder().withEvent(event).includeTags("tags").toJsonString(), equalTo(expectedJsonString));
assertThat(JacksonEvent.jsonBuilder().withEvent(event).toJsonString(), equalTo(jsonString));
assertThat(JacksonEvent.jsonBuilder().toJsonString(), equalTo(null));
assertThat(event.jsonBuilder().includeTags("tags").toJsonString(), equalTo(expectedJsonString));
assertThat(event.jsonBuilder().toJsonString(), equalTo(jsonString));
}

private static Map<String, Object> createComplexDataMap() {
Expand Down

0 comments on commit 71415bb

Please sign in to comment.