/**
* Code contributed to the Learning Layers project
* http://www.learning-layers.eu
* Development is partly funded by the FP7 Programme of the European Commission under
* Grant Agreement FP7-ICT-318209.
* Copyright (c) 2014, Graz University of Technology - KTI (Knowledge Technologies Institute).
* For a list of contributors see the AUTHORS file at the top-level directory of this distribution.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package at.tugraz.sss.serv.reg;
import at.tugraz.sss.serv.util.SSLogU;
import at.tugraz.sss.serv.datatype.SSErr;
import at.tugraz.sss.serv.datatype.enums.SSErrE;
public class SSServErrReg {
public static void regErrThrow(
final Exception originalError,
final boolean log) throws SSErr{
SSErr errorToThrow = null;
try{
if(log){
SSLogU.err(originalError, true);
}
if(originalError instanceof SSErr){
errorToThrow = (SSErr) originalError;
}else{
errorToThrow = SSErr.get(SSErrE.defaultErr, originalError);
}
}catch(Exception error1){
SSLogU.err(error1);
}
throw errorToThrow;
}
public static void regErrThrow(
final SSErrE code,
final Exception originalError) throws SSErr{
SSErr errorToThrow = null;
try{
SSLogU.err(code, true);
if(originalError == null){
errorToThrow = SSErr.get(code);
}else{
errorToThrow = SSErr.get(code, originalError);
}
}catch(Exception error1){
SSLogU.err(error1);
}
throw errorToThrow;
}
public static void regErrThrow(
final SSErrE code) throws SSErr{
SSErr errorToThrow = null;
try{
SSLogU.err(code, true);
errorToThrow = SSErr.get(code);
}catch(Exception error1){
SSLogU.err(error1);
}
throw errorToThrow;
}
public static void regErrThrow(final Exception error) throws SSErr{
SSErr errorToThrow = null;
try{
SSLogU.err(error, true);
if(error instanceof SSErr){
errorToThrow = (SSErr) error;
}else{
errorToThrow = SSErr.get(SSErrE.defaultErr, error);
}
}catch(Exception error1){
SSLogU.err(error1);
}
throw errorToThrow;
}
}
//private static final ThreadLocal<List<SSErr>> servImplErrors = new ThreadLocal<List<SSErr>>(){
//
// @Override
// protected List<SSErr> initialValue(){
//
// try{
// return new ArrayList<>();
// }catch (Exception error){
// SSLogU.err(error);
// return null;
// }
// }
// };
//public static void reset(){
// servImplErrors.get().clear();
// }
//public static void logAndReset(final boolean log){
//
// try{
//
// if(!log){
//
// reset();
// return;
// }
//
// for(SSErr error : servImplErrors.get()){
//
// SSLogU.err(
// error.threadWhereThrown + SSStrU.blank
// + error.classWhereThrown + SSStrU.blank
// + error.methodWhereThrown + SSStrU.blank
// + error.lineWhereThrown + SSStrU.blank
// + error.className + SSStrU.blank
// + error.message);
// }
//
// reset();
//
// }catch(Exception error1){
// SSLogU.err(error1);
// }
// }
// public static List<SSErr> getErrors(){
// return new ArrayList<>(servImplErrors.get());
// }
//public static void destroy(){
//
// logAndReset(true);
//
// servImplErrors.remove();
// }
// public static boolean containsErr(final SSErrE code){
//
// if(servImplErrors.get().stream().anyMatch((error) -> (error.code.compareTo(code) == 0))) {
// return true;
// }else{
// return false;
// }
// }
// public static boolean containsErr(final Exception exception){
//
// if(exception instanceof SSErr){
// return containsErr(((SSErr) exception).code);
// }
//
// return servImplErrors.get().stream().anyMatch((error) -> (error.exception.getClass() == exception.getClass()));
// }
// public static void regErr(final Exception originalError){
//
// try{
//
// if(!SSStrU.contains(servImplErrors.get(), originalError)){
// SSLogU.err(originalError);
// }
//
// if(originalError instanceof SSErr){
// servImplErrors.get().add(SSErr.get(((SSErr) originalError).code, originalError));
// }else{
// servImplErrors.get().add(SSErr.get(SSErrE.defaultErr, originalError));
// }
//
// }catch(Exception error1){
//
// SSLogU.err(error1);
//
// try{
// servImplErrors.get().add(SSErr.get(SSErrE.defaultErr, error1));
// }catch(Exception error2){
// SSLogU.err(error2);
// }
// }
// }
// public static void regErr(
// final Exception originalError,
// final boolean log){
//
// try{
//
// if(
// log &&
// !SSStrU.contains(servImplErrors.get(), originalError)){
//
// SSLogU.err(originalError);
// }
//
// if(originalError instanceof SSErr){
// servImplErrors.get().add(SSErr.get(((SSErr) originalError).code, originalError));
// }else{
// servImplErrors.get().add(SSErr.get(SSErrE.defaultErr, originalError));
// }
//
// }catch(Exception error1){
//
// SSLogU.err(error1);
//
// try{
// servImplErrors.get().add(SSErr.get(SSErrE.defaultErr, error1));
// }catch(Exception error2){
// SSLogU.err(error2);
// }
// }
// }
// public static void regErr(
// final Exception originalError,
// final String logText){
//
// try{
//
// if(!containsErr(originalError)){
// SSLogU.err(originalError, logText);
// }
//
// if(originalError instanceof SSErr){
// servImplErrors.get().add(SSErr.get(((SSErr) originalError).code, originalError));
// }else{
// servImplErrors.get().add(SSErr.get(SSErrE.defaultErr, originalError));
// }
//
// }catch(Exception error1){
// SSLogU.err(error1);
// }
// }