package org.n3r.eql.util; import static com.google.common.base.Preconditions.checkState; /** * Key-Value Pair */ public class KeyValue { private String key; private String value; public static KeyValue parse(String keyValue) { int equalPos = keyValue.indexOf('='); if (equalPos < 0) { return new KeyValue(keyValue, ""); } checkState(equalPos != 0, keyValue + " is not a valid key value pair (key[=value]"); String key = keyValue.substring(0, equalPos).trim(); String value = equalPos < keyValue.length() - 1 ? keyValue.substring(equalPos + 1).trim() : ""; return new KeyValue(key, value); } public KeyValue(String key, String value) { this.key = key; this.value = value; } public String getKey() { return key; } public void setKey(String key) { this.key = key; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } @Override public String toString() { return '{' + key + '=' + value + '}'; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; KeyValue keyValue = (KeyValue) o; if (key != null ? !key.equals(keyValue.key) : keyValue.key != null) return false; if (value != null ? !value.equals(keyValue.value) : keyValue.value != null) return false; return true; } @Override public int hashCode() { int result = key != null ? key.hashCode() : 0; result = 31 * result + (value != null ? value.hashCode() : 0); return result; } public KeyValue removeKeyPrefix(String keyPrefix) { String newKey = key.substring(keyPrefix.length()); if (newKey.startsWith(".")) newKey = newKey.substring(1); return new KeyValue(newKey, value); } public boolean keyStartsWith(String prefix) { return key.startsWith(prefix); } }