/*
* Copyright (c) 2016 The original author or authors
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* and Apache License v2.0 which accompanies this distribution.
*
* The Eclipse Public License is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* The Apache License v2.0 is available at
* http://www.opensource.org/licenses/apache2.0.php
*
* You may elect to redistribute this code under either of these licenses.
*/
package io.vertx.ext.consul;
import io.vertx.codegen.annotations.DataObject;
import io.vertx.codegen.annotations.GenIgnore;
import io.vertx.core.json.JsonObject;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
Holds result of key/value pairs query
Author: Ruslan Sennov
/**
* Holds result of key/value pairs query
*
* @author <a href="mailto:ruslan.sennov@gmail.com">Ruslan Sennov</a>
*/
@DataObject(generateConverter = true)
public class KeyValueList {
private long index;
private List<KeyValue> list;
Default constructor
/**
* Default constructor
*/
public KeyValueList() {}
Copy constructor
Params: - other – the one to copy
/**
* Copy constructor
*
* @param other the one to copy
*/
public KeyValueList(KeyValueList other) {
this.index = other.index;
this.list = other.list;
}
Constructor from JSON
Params: - json – the JSON
/**
* Constructor from JSON
*
* @param json the JSON
*/
public KeyValueList(JsonObject json) {
KeyValueListConverter.fromJson(json, this);
}
Convert to JSON
Returns: the JSON
/**
* Convert to JSON
*
* @return the JSON
*/
public JsonObject toJson() {
JsonObject jsonObject = new JsonObject();
KeyValueListConverter.toJson(this, jsonObject);
return jsonObject;
}
Return true
if there is a key/value pairs present, otherwise false
. Returns: true
if there is a key/value pairs present, otherwise false
/**
* Return {@code true} if there is a key/value pairs present, otherwise {@code false}.
*
* @return {@code true} if there is a key/value pairs present, otherwise {@code false}
*/
@GenIgnore
public boolean isPresent() {
return list != null;
}
Get Consul index
Returns: the consul index
/**
* Get Consul index
*
* @return the consul index
*/
public long getIndex() {
return index;
}
Set Consul index
Params: - index – the consul index
Returns: reference to this, for fluency
/**
* Set Consul index
*
* @param index the consul index
* @return reference to this, for fluency
*/
public KeyValueList setIndex(long index) {
this.index = index;
return this;
}
Get list of key/value pairs
Returns: list of key/value pairs
/**
* Get list of key/value pairs
*
* @return list of key/value pairs
*/
public List<KeyValue> getList() {
return list;
}
Set list of key/value pairs
Params: - list – list of key/value pairs
Returns: reference to this, for fluency
/**
* Set list of key/value pairs
*
* @param list list of key/value pairs
* @return reference to this, for fluency
*/
public KeyValueList setList(List<KeyValue> list) {
this.list = list;
return this;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
KeyValueList list1 = (KeyValueList) o;
if (index != list1.index) return false;
return list != null ? sorted().equals(list1.sorted()) : list1.list == null;
}
@Override
public int hashCode() {
int result = (int) (index ^ (index >>> 32));
result = 31 * result + (list != null ? sorted().hashCode() : 0);
return result;
}
private List<KeyValue> sorted() {
List<KeyValue> sorted = null;
if (list != null) {
sorted = new ArrayList<>(list);
sorted.sort(Comparator.comparing(KeyValue::getKey));
}
return sorted;
}
}