Sonar Critical Fix
[dcaegen2/analytics/tca.git] / dcae-analytics-tca / src / main / java / org / openecomp / dcae / apod / analytics / tca / processor / AbstractTCAECEFPolicyProcessor.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.exception.MessageProcessingException;\r
24 import org.openecomp.dcae.apod.analytics.common.service.processor.AbstractMessageProcessor;\r
25 import org.openecomp.dcae.apod.analytics.model.domain.cef.EventListener;\r
26 import org.slf4j.Logger;\r
27 import org.slf4j.LoggerFactory;\r
28 \r
29 import javax.annotation.Nonnull;\r
30 \r
31 /**\r
32  * <p>\r
33  *     Encapsulates common functionality for all TCA CEF Policy Processors\r
34  * </p>\r
35  *\r
36  * @author Rajiv Singla . Creation Date: 11/9/2016.\r
37  */\r
38 public abstract class AbstractTCAECEFPolicyProcessor extends AbstractMessageProcessor<TCACEFProcessorContext> {\r
39 \r
40     private static final Logger LOG = LoggerFactory.getLogger(AbstractTCAECEFPolicyProcessor.class);\r
41 \r
42     /**\r
43      * For all TCA Policy Processor the pre processor ensures that {@link EventListener} object is\r
44      * present\r
45      *\r
46      * @param processorContext incoming Processor Context\r
47      * @return Pre processed Processor Context\r
48      */\r
49     @Override\r
50     public TCACEFProcessorContext preProcessor(@Nonnull TCACEFProcessorContext processorContext) {\r
51         // validates CEF Event Listener is Present\r
52         final EventListener cefEventListener = processorContext.getCEFEventListener();\r
53         if (cefEventListener == null) {\r
54             final String errorMessage = String.format(\r
55                     "CEF Event Listener is not Present.Invalid use of Processor: %s. CEF Message: %s",\r
56                     getProcessorInfo().getProcessorName(), processorContext.getMessage());\r
57             throw new MessageProcessingException(errorMessage, LOG, new IllegalArgumentException(errorMessage));\r
58         }\r
59         return super.preProcessor(processorContext);\r
60     }\r
61 }\r