13d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/*
23d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Copyright (C) 2014 The Android Open Source Project
33d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby *
43d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Licensed under the Apache License, Version 2.0 (the "License");
53d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * you may not use this file except in compliance with the License.
63d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * You may obtain a copy of the License at
73d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby *
83d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby *      http://www.apache.org/licenses/LICENSE-2.0
93d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby *
103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Unless required by applicable law or agreed to in writing, software
113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * distributed under the License is distributed on an "AS IS" BASIS,
123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * See the License for the specific language governing permissions and
143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * limitations under the License.
153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */
163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambypackage com.android.omadm.plugin;
183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/**
203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * DmtException is the base for all DMT exceptions.
213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */
223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambypublic class DmtException extends Exception {
233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    private final int code;
253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    /**
273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby     * Default Constructor for unspecified message. Not recommended to use.
283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby     */
293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    public DmtException() {
303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby        code = ErrorCodes.SYNCML_DM_FAIL;
313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    }
323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    /**
343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby     * Exception with only message without error code, for backwards
353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby     * compatibility, not recommended to use.
363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby     *
373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby     * @param message the detail message. null means unspecified.
383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby     */
393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    public DmtException(String message) {
403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby        super(message);
413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby        code = ErrorCodes.SYNCML_DM_FAIL;
423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    }
433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    /**
453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby     * Recommended DmtException constructor.
463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby     *
473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby     * @param code error code specified in <A
483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby     *            href="ErrorCodes.html">ErrorCodes</A>. 0 means unspecified.
493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby     * @param message the detail message. null means unspecified.
503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby     */
513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    public DmtException(int code, String message) {
523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby        super(message);
533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby        this.code = code;
543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    }
553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    /**
573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby     * Return error code. if it is 0 it means has not been specified.
583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby     *
593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby     * @return Error code,
603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby     */
613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    public int getCode() {
623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby        return code;
633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    }
643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    /**
663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby     * Returns the error message string. null means unspecified message
673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby     *
683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby     * @return Error message string.
693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby     */
703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    @Override
713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    public String getMessage() {
723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby        String s = super.getMessage();
733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby        if (s == null) {
743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby            s = "Unspecified Message";
753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby        }
763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby        return s;
773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    }
783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby}
79