14f7d24475387e5161a4ff8c7287c83153d571c1
[ccsdk/features.git] /
1 /*******************************************************************************
2  * ============LICENSE_START========================================================================
3  * ONAP : ccsdk feature sdnr wt
4  * =================================================================================================
5  * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
6  * =================================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
8  * in compliance with the License. You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software distributed under the License
13  * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
14  * or implied. See the License for the specific language governing permissions and limitations under
15  * the License.
16  * ============LICENSE_END==========================================================================
17  ******************************************************************************/
18 package org.onap.ccsdk.features.sdnr.wt.devicemanager.index.database.types;
19
20 import com.fasterxml.jackson.annotation.JsonProperty;
21 import org.elasticsearch.index.query.QueryBuilder;
22 import org.elasticsearch.index.query.RangeQueryBuilder;
23 import org.onap.ccsdk.features.sdnr.wt.devicemanager.base.database.EsObject;
24 import org.onap.ccsdk.features.sdnr.wt.devicemanager.base.internalTypes.InternalDateAndTime;
25
26 /**
27  * Event log, used by Odlux client.
28  * Not used for writing any data by devicemanager.
29  * Type introduced to implement IndexCleanService
30  */
31
32 public class EsEventOdluxLog extends EsObject {
33
34     public static final String ESDATATYPENAME = "log";
35
36     private static final String LOG_FIELD_TIMESTAMP = "timestamp";
37
38     private String type;
39     private String component;
40     private String message;
41     private String timestamp;
42
43     /**
44      * For jackson
45      */
46     protected EsEventOdluxLog() {
47     }
48     /**
49      * Constructor
50      * @param type string
51      * @param component string
52      * @param message string
53      * @param timestamp string with netconf format string
54      */
55     public EsEventOdluxLog(String type, String component, String message, InternalDateAndTime timestamp) {
56         super();
57         this.type = type;
58         this.component = component;
59         this.message = message;
60         this.timestamp = timestamp.getValue();
61     }
62
63     @JsonProperty("type")
64     public String getType() {
65         return type;
66     }
67
68     @JsonProperty("component")
69     public String getComponent() {
70         return component;
71     }
72
73     @JsonProperty("message")
74     public String getMessage() {
75         return message;
76     }
77
78     @JsonProperty(LOG_FIELD_TIMESTAMP)
79     public String getTimestamp() {
80         return timestamp;
81     }
82
83     /**
84      * Query to get older Elements
85      * @param netconfTimeStamp to identify older Elements
86      * @return QueryBuilder for older elements related to timestamp
87      */
88     public static QueryBuilder getQueryForTimeStamp(String netconfTimeStamp) {
89       return new RangeQueryBuilder(LOG_FIELD_TIMESTAMP).lt(netconfTimeStamp);
90     }
91
92  }