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
 
  10  * http://www.apache.org/licenses/LICENSE-2.0
 
  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
 
  16  * ============LICENSE_END==========================================================================
 
  17  ******************************************************************************/
 
  18 package org.onap.ccsdk.features.sdnr.wt.devicemanager.index.database.types;
 
  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;
 
  27  * Event log, used by Odlux client.
 
  28  * Not used for writing any data by devicemanager.
 
  29  * Type introduced to implement IndexCleanService
 
  32 public class EsEventOdluxLog extends EsObject {
 
  34     public static final String ESDATATYPENAME = "log";
 
  36     private static final String LOG_FIELD_TIMESTAMP = "timestamp";
 
  39     private String component;
 
  40     private String message;
 
  41     private String timestamp;
 
  46     protected EsEventOdluxLog() {
 
  51      * @param component string
 
  52      * @param message string
 
  53      * @param timestamp string with netconf format string
 
  55     public EsEventOdluxLog(String type, String component, String message, InternalDateAndTime timestamp) {
 
  58         this.component = component;
 
  59         this.message = message;
 
  60         this.timestamp = timestamp.getValue();
 
  64     public String getType() {
 
  68     @JsonProperty("component")
 
  69     public String getComponent() {
 
  73     @JsonProperty("message")
 
  74     public String getMessage() {
 
  78     @JsonProperty(LOG_FIELD_TIMESTAMP)
 
  79     public String getTimestamp() {
 
  84      * Query to get older Elements
 
  85      * @param netconfTimeStamp to identify older Elements
 
  86      * @return QueryBuilder for older elements related to timestamp
 
  88     public static QueryBuilder getQueryForTimeStamp(String netconfTimeStamp) {
 
  89       return new RangeQueryBuilder(LOG_FIELD_TIMESTAMP).lt(netconfTimeStamp);