package stroom.pipeline.refdata.store;


import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;

import java.util.Objects;
import java.util.Set;

@JsonPropertyOrder(alphabetic = true)
@JsonInclude(Include.NON_NULL)
public class RefStreamProcessingInfo {

    private final RefStreamDefinition refStreamDefinition;
    private final RefDataProcessingInfo refDataProcessingInfo;
    private final Set<String> mapNames;

    public RefStreamProcessingInfo(final RefStreamDefinition refStreamDefinition,
                                   final RefDataProcessingInfo refDataProcessingInfo,
                                   final Set<String> mapNames) {
        this.refStreamDefinition = Objects.requireNonNull(refStreamDefinition);
        this.refDataProcessingInfo = Objects.requireNonNull(refDataProcessingInfo);
        this.mapNames = Objects.requireNonNull(mapNames);
    }

    public RefStreamDefinition getRefStreamDefinition() {
        return refStreamDefinition;
    }

    public RefDataProcessingInfo getRefDataProcessingInfo() {
        return refDataProcessingInfo;
    }

    public Set<String> getMapNames() {
        return mapNames;
    }

    @Override
    public boolean equals(final Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        final RefStreamProcessingInfo info = (RefStreamProcessingInfo) o;
        return refStreamDefinition.equals(info.refStreamDefinition)
                && refDataProcessingInfo.equals(info.refDataProcessingInfo)
                && mapNames.equals(info.mapNames);
    }

    @Override
    public int hashCode() {
        return Objects.hash(refStreamDefinition, refDataProcessingInfo, mapNames);
    }

    @Override
    public String toString() {
        return "RefStreamProcessingInfo{" +
                "refStreamDefinition=" + refStreamDefinition +
                ", refDataProcessingInfo=" + refDataProcessingInfo +
                ", mapNames=" + mapNames +
                '}';
    }
}

@@ -34,16 +34,69 @@
 tore;%0A%0A%0A
+import com.fasterxml.jackson.annotation.JsonCreator;%0A
 import c
@@ -132,32 +132,32 @@
 on.JsonInclude;%0A
-
 import com.faste
@@ -193,32 +193,86 @@
 nclude.Include;%0A
+import com.fasterxml.jackson.annotation.JsonProperty;%0A
 import com.faste
@@ -473,16 +473,34 @@
 Info %7B%0A%0A
+    @JsonProperty%0A
     priv
@@ -546,24 +546,42 @@
 Definition;%0A
+    @JsonProperty%0A
     private 
@@ -627,24 +627,42 @@
 essingInfo;%0A
+    @JsonProperty%0A
     private 
@@ -690,16 +690,33 @@
 Names;%0A%0A
+    @JsonCreator%0A
     publ
@@ -742,16 +742,53 @@
 ingInfo(
+@JsonProperty(%22refStreamDefinition%22) 
 final Re
@@ -856,24 +856,63 @@
             
+ @JsonProperty(%22refDataProcessingInfo%22)
  final RefDa
@@ -981,24 +981,50 @@
             
+ @JsonProperty(%22mapNames%22)
  final Set%3CS

Fix json annos in RefStreamProcessingInfo