package com.joe.utilities.core.configuration; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import com.joe.utilities.core.util.ReturnStatus; /** Contains a list of composite Global Configuration errors */ public class CompositeGlobalConfigurationException extends GlobalConfigurationException { /** * Used by the Serialization interface. */ private static final long serialVersionUID = 1L; /** The list of global configuration exceptions */ List<GlobalConfigurationException> globalExceptionList = new ArrayList<GlobalConfigurationException>(); /** * Generate an exception that holds a list of exceptions * @param cause The initial exception in the list. */ public CompositeGlobalConfigurationException(GlobalConfigurationException cause) { super(cause.getMessage(), cause); if ( cause instanceof CompositeGlobalConfigurationException ){ this.addException((CompositeGlobalConfigurationException) cause); }else { this.addException(cause); } } /** Adds the exception to the list * * @param exception The error */ public void addException(GlobalConfigurationException exception){ if ( exception instanceof CompositeGlobalConfigurationException ){ globalExceptionList.addAll(((CompositeGlobalConfigurationException )exception).getGlobalExceptionList()); } else { globalExceptionList.add(exception); } } /** Returns the entire list of global errors. * * @return The list of global configuration exceptions. */ public List<GlobalConfigurationException> getGlobalExceptionList(){ return globalExceptionList; } public ReturnStatus getReturnStatus(){ ReturnStatus returnStatus = new ReturnStatus(); for ( GlobalConfigurationException error : getGlobalExceptionList()){ HashMap<String,String> params = new HashMap<String,String>(); params.put("message", error.getMessage()); returnStatus.addError("Exception", error.getMessage(),params); } return returnStatus; } }