/*
* Copyright 2018 Red Hat, Inc.
* <p>
* 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.
* <p>
* The Eclipse Public License is available at
* http://www.eclipse.org/legal/epl-v10.html
* <p>
* The Apache License v2.0 is available at
* http://www.opensource.org/licenses/apache2.0.php
* <p>
* You may elect to redistribute this code under either of these licenses.
*/
package io.vertx.redis.client;
Maps a redis error message to a JVM Exception type.
Redis Errors have no trace so this throwable will not contain a stacktrace.
Author: Paulo Lopes
/**
* Maps a redis error message to a JVM Exception type.
* Redis Errors have no trace so this throwable will not contain a stacktrace.
*
* @author Paulo Lopes
*/
@Deprecated
public final class RedisException extends RuntimeException {
public RedisException(String message) {
super(message, null, false, false);
}
Redis error messages follow the sintax: ERROR_TYPE error detail message
This method will evaluate is the given type matches the message ERROR_TYPE.
Params: - type – a type
Returns: true if match.
/**
* Redis error messages follow the sintax: ERROR_TYPE error detail message
* This method will evaluate is the given type matches the message ERROR_TYPE.
*
* @param type a type
* @return true if match.
*/
public boolean is(String type) {
String message = getMessage();
if (message == null) {
return false;
}
final int len = type.length();
if (message.length() < len) {
return false;
}
for (int i = 0; i < len; i++) {
if (message.charAt(i) != type.charAt(i)) {
return false;
}
}
return true;
}
Some messages are well formatted and allow extracting data from.
This method will extract the indexed slice of the message given the seperator sep.
Params: - sep – a char seperator
- index – the desired index.
Returns: the slice or null.
/**
* Some messages are well formatted and allow extracting data from.
* This method will extract the indexed slice of the message given the seperator sep.
*
* @param sep a char seperator
* @param index the desired index.
* @return the slice or null.
*/
public String slice(char sep, int index) {
String message = getMessage();
if (message == null) {
return null;
}
int start = 0;
int count = 0;
for (int i = 0; i < message.length(); i++) {
if (message.charAt(i) == sep) {
if (++count > index) {
return message.substring(start, i);
} else {
start = i + 1;
}
}
}
// EOL
if (count == index) {
return message.substring(start);
}
return null;
}
}