001    /*
002    // This software is subject to the terms of the Eclipse Public License v1.0
003    // Agreement, available at the following URL:
004    // http://www.eclipse.org/legal/epl-v10.html.
005    // Copyright (C) 2007-2008 Julian Hyde
006    // All Rights Reserved.
007    // You must accept the terms of that agreement to use this software.
008    */
009    package org.olap4j.driver.xmla;
010    
011    import org.olap4j.OlapException;
012    import org.olap4j.Cell;
013    
014    import java.sql.SQLException;
015    
016    /**
017     * Helper class which encapsulates policies which are
018     * common throughout a driver. These policies include exception handling
019     * and factory methods.
020     *
021     * @author Luc Boudreau
022     * @version $Id: XmlaHelper.java 236 2009-05-12 07:42:17Z jhyde $
023     */
024    public class XmlaHelper {
025    
026        public OlapException createException(String msg) {
027            return new OlapException(msg);
028        }
029    
030        public OlapException createException(Throwable cause) {
031            return new OlapException(cause.getMessage(), cause);
032        }
033    
034        public OlapException createException(String msg, Throwable cause) {
035            return new OlapException(msg, cause);
036        }
037    
038        public OlapException createException(Cell context, String msg) {
039            OlapException exception = new OlapException(msg);
040            exception.setContext(context);
041            return exception;
042        }
043    
044        public OlapException createException(
045            Cell context, String msg, Throwable cause)
046        {
047            OlapException exception = new OlapException(msg, cause);
048            exception.setContext(context);
049            return exception;
050        }
051    
052        public OlapException toOlapException(SQLException e) {
053            if (e instanceof OlapException) {
054                return (OlapException) e;
055            } else {
056                return new OlapException(null, e);
057            }
058        }
059    }
060    
061    // End XmlaHelper.java