TCA: Support for VES/A&AI enrichment
[dcaegen2/analytics/tca.git] / dcae-analytics-tca / src / main / java / org / openecomp / dcae / apod / analytics / tca / processor / TCACEFProcessorContext.java
1 /*\r
2  * ===============================LICENSE_START======================================\r
3  *  dcae-analytics\r
4  * ================================================================================\r
5  *    Copyright © 2017 AT&T Intellectual Property. All rights reserved.\r
6  * ================================================================================\r
7  *  Licensed under the Apache License, Version 2.0 (the "License");\r
8  *  you may not use this file except in compliance with the License.\r
9  *   You may obtain a copy of the License at\r
10  *\r
11  *          http://www.apache.org/licenses/LICENSE-2.0\r
12  *\r
13  *  Unless required by applicable law or agreed to in writing, software\r
14  *  distributed under the License is distributed on an "AS IS" BASIS,\r
15  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16  *  See the License for the specific language governing permissions and\r
17  *  limitations under the License.\r
18  *  ============================LICENSE_END===========================================\r
19  */\r
20 \r
21 package org.openecomp.dcae.apod.analytics.tca.processor;\r
22 \r
23 import org.openecomp.dcae.apod.analytics.common.service.processor.AbstractProcessorContext;\r
24 import org.openecomp.dcae.apod.analytics.model.domain.cef.EventListener;\r
25 import org.openecomp.dcae.apod.analytics.model.domain.policy.tca.MetricsPerEventName;\r
26 import org.openecomp.dcae.apod.analytics.model.domain.policy.tca.TCAPolicy;\r
27 \r
28 /**\r
29  *  TCA CEF Policy Processor Context\r
30  *\r
31  * @author Rajiv Singla . Creation Date: 11/7/2016.\r
32  */\r
33 public class TCACEFProcessorContext extends AbstractProcessorContext {\r
34 \r
35     private static final long serialVersionUID = 1L;\r
36 \r
37     private final TCAPolicy tcaPolicy;\r
38     private EventListener eventListener;\r
39     private MetricsPerEventName metricsPerEventName;\r
40 \r
41     public TCACEFProcessorContext(final String message, boolean canProcessingContinue, final TCAPolicy tcaPolicy) {\r
42         super(message, canProcessingContinue);\r
43         this.tcaPolicy = tcaPolicy;\r
44         // present only if cef incoming message can be parsed successfully to Event Listener Object\r
45         this.eventListener = null;\r
46         // present only if there are any threshold violations are detected\r
47         this.metricsPerEventName = null;\r
48     }\r
49 \r
50     // Auxiliary Constructor which default canProcessingContinue Flag to true\r
51     public TCACEFProcessorContext(final String message, final TCAPolicy tcaPolicy) {\r
52         this(message, true, tcaPolicy);\r
53     }\r
54 \r
55     /**\r
56      * Returns {@link TCAPolicy} Object\r
57      *\r
58      * @return TCA Policy\r
59      */\r
60     public TCAPolicy getTCAPolicy() {\r
61         return tcaPolicy;\r
62     }\r
63 \r
64     /**\r
65      * Returns Common Event Format {@link EventListener} if present else null\r
66      *\r
67      * @return CEF Event Listener\r
68      */\r
69     public EventListener getCEFEventListener() {\r
70         return eventListener;\r
71     }\r
72 \r
73 \r
74     /**\r
75      * Sets new {@link EventListener}\r
76      *\r
77      * @param eventListener set new value for CEF event listener\r
78      */\r
79     public void setCEFEventListener(final EventListener eventListener) {\r
80         this.eventListener = eventListener;\r
81     }\r
82 \r
83 \r
84     /**\r
85      * Returns TCA Policy {@link MetricsPerEventName} which was has violated Threshold for the CEF Message if\r
86      * present else null\r
87      *\r
88      * @return Violated Threshold\r
89      */\r
90     public MetricsPerEventName getMetricsPerEventName() {\r
91         return metricsPerEventName;\r
92     }\r
93 \r
94     /**\r
95      * Assign new TCA Policy {@link MetricsPerEventName} which was has violated Threshold for the CEF Message\r
96      *\r
97      * @param metricsPerEventName new value for Metrics Per Functional Role with violated threshold\r
98      */\r
99     public void setMetricsPerEventName(MetricsPerEventName metricsPerEventName) {\r
100         this.metricsPerEventName = metricsPerEventName;\r
101     }\r
102 \r
103 }\r