Add support for ABATED alerts within CDAP TCA
[dcaegen2/analytics/tca.git] / dcae-analytics-cdap-common / src / main / java / org / openecomp / dcae / apod / analytics / cdap / common / persistance / tca / TCAAlertsAbatementEntity.java
diff --git a/dcae-analytics-cdap-common/src/main/java/org/openecomp/dcae/apod/analytics/cdap/common/persistance/tca/TCAAlertsAbatementEntity.java b/dcae-analytics-cdap-common/src/main/java/org/openecomp/dcae/apod/analytics/cdap/common/persistance/tca/TCAAlertsAbatementEntity.java
new file mode 100644 (file)
index 0000000..6f71801
--- /dev/null
@@ -0,0 +1,157 @@
+/*
+ * ===============================LICENSE_START======================================
+ *  dcae-analytics
+ * ================================================================================
+ *    Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *          http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *  ============================LICENSE_END===========================================
+ */
+
+package org.openecomp.dcae.apod.analytics.cdap.common.persistance.tca;
+
+import com.google.common.base.Objects;
+import org.apache.hadoop.io.Writable;
+import org.apache.hadoop.io.WritableUtils;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+import java.io.Serializable;
+
+/**
+ * TCA Alerts Abatement Entity is used to persist information to determine if abatement event need to sent to downstream
+ * systems
+ *
+ *  @author rs153v (Rajiv Singla) . Creation Date: 9/11/2017.
+ */
+public class TCAAlertsAbatementEntity implements Writable, Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private long creationTS;
+    private String requestId;
+    // Kept as string to avoid null checks
+    private String abatementSentTS;
+
+    /**
+     * No Arg constructor required for Jackson Json Serialization / Deserialization
+     */
+    public TCAAlertsAbatementEntity() {
+        // required no arg constructor
+    }
+
+    /**
+     * Creates TCA Alerts Abatement Entity to persist information to determine if abatement alerts need to be posted
+     *
+     * @param creationTS record creation time
+     * @param requestId request ID of generated alert
+     * @param abatementSentTS time when abatement was sent out for that alert if any
+     */
+    public TCAAlertsAbatementEntity(long creationTS, String requestId, String abatementSentTS) {
+        this.creationTS = creationTS;
+        this.requestId = requestId;
+        this.abatementSentTS = abatementSentTS;
+    }
+
+    /**
+     * Timestamp when record was created
+     *
+     * @return timestamp when record was created
+     */
+    public long getCreationTS() {
+        return creationTS;
+    }
+
+    /**
+     * Set value for timestamp when record was created
+     *
+     * @param creationTS new value for timestamp when record was created
+     */
+    public void setCreationTS(long creationTS) {
+        this.creationTS = creationTS;
+    }
+
+    /**
+     * Request Id of ONSET alert which was sent
+     *
+     * @return request Id of ONSET alert which was sent
+     */
+    public String getRequestId() {
+        return requestId;
+    }
+
+    /**
+     * Set Request Id of ONSET alert
+     *
+     * @param requestId set new value for ONSET alert request id
+     */
+    public void setRequestId(String requestId) {
+        this.requestId = requestId;
+    }
+
+
+    /**
+     * Get abatement Sent Timestamp
+     *
+     * @return get abatement alert sent timestamp
+     */
+    public String getAbatementSentTS() {
+        return abatementSentTS;
+    }
+
+    /**
+     * Set timestamp when abatement alert is sent
+     *
+     * @param abatementSentTS sent new value for timestamp when abatement alert is sent
+     */
+    public void setAbatementSentTS(String abatementSentTS) {
+        this.abatementSentTS = abatementSentTS;
+    }
+
+    /**
+     * Write entity to Table
+     *
+     * @param dataOutput data output
+     * @throws IOException io exception
+     */
+    @Override
+    public void write(DataOutput dataOutput) throws IOException {
+        WritableUtils.writeVLong(dataOutput, creationTS);
+        WritableUtils.writeString(dataOutput, requestId);
+        WritableUtils.writeString(dataOutput, abatementSentTS);
+    }
+
+    /**
+     * Read entity from table
+     *
+     * @param dataInput data input
+     * @throws IOException io exception
+     */
+    @Override
+    public void readFields(DataInput dataInput) throws IOException {
+        creationTS = WritableUtils.readVLong(dataInput);
+        requestId = WritableUtils.readString(dataInput);
+        abatementSentTS = WritableUtils.readString(dataInput);
+    }
+
+
+    @Override
+    public String toString() {
+        return Objects.toStringHelper(this)
+                .add("creationTS", creationTS)
+                .add("requestId", requestId)
+                .add("abatementSentTS", abatementSentTS)
+                .toString();
+    }
+}