/**
* This software is licensed to you under the Apache License, Version 2.0 (the
* "Apache License").
*
* LinkedIn's contributions are made under the Apache License. If you contribute
* to the Software, the contributions will be deemed to have been made under the
* Apache License, unless you expressly indicate otherwise. Please do not make any
* contributions that would be inconsistent with the Apache License.
*
* You may obtain a copy of the Apache License at http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, this software
* distributed under the Apache License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the Apache
* License for the specific language governing permissions and limitations for the
* software governed under the Apache License.
*
* © 2012 LinkedIn Corp. All Rights Reserved.
*/
package com.senseidb.search.req;
import java.io.Serializable;
public class SenseiError implements Serializable {
private final String message;
private final ErrorType errorType;
private final int errorCode;
public SenseiError(String message, ErrorType errorType) {
this.message = message;
this.errorType = errorType;
this.errorCode = errorType.getDefaultErrorCode();
}
public SenseiError(String message, ErrorType errorType, int errorCode) {
this.message = message;
this.errorType = errorType;
this.errorCode = errorCode;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((errorType == null) ? 0 : errorType.hashCode());
result = prime * result + ((message == null) ? 0 : message.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
SenseiError other = (SenseiError) obj;
if (errorType != other.errorType)
return false;
if (message == null) {
if (other.message != null)
return false;
} else if (!message.equals(other.message))
return false;
return true;
}
public String getMessage() {
return message;
}
public ErrorType getErrorType() {
return errorType;
}
public int getErrorCode() {
return errorCode;
}
@Override
public String toString() {
ErrorType et = errorType;
if (et == null)
et = ErrorType.UnknownError;
return String.format("%s(%d): %s", et.name(), errorCode, message);
}
}