mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

kenneth_suter
02.22.2007 eebe112fb9a05226379250e0773a43b219be18da
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License, Version 1.0 only
 * (the "License").  You may not use this file except in compliance
 * with the License.
 *
 * You can obtain a copy of the license at
 * trunk/opends/resource/legal-notices/OpenDS.LICENSE
 * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at
 * trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
 * add the following below this CDDL HEADER, with the fields enclosed
 * by brackets "[]" replaced with your own identifying information:
 *      Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 *
 *
 *      Portions Copyright 2006-2007 Sun Microsystems, Inc.
 */
 
package org.opends.quicksetup;
 
/**
 * This exception is used to encapsulate all the error that we might have
 * during the installation.
 *
 * @see org.opends.quicksetup.installer.Installer
 * @see org.opends.quicksetup.installer.webstart.WebStartInstaller
 * @see org.opends.quicksetup.installer.offline.OfflineInstaller
 *
 */
public class ApplicationException extends Exception
{
  private static final long serialVersionUID = -3527273444231560341L;
 
  private String formattedMsg = null;
 
  private Type type;
 
  /**
   * This enum contains the different type of ApplicationException that we can
   * have.
   *
   */
  public enum Type
  {
    /**
     * Error related to file system error: IOException writing files, permission
     * errors, etc.
     */
    FILE_SYSTEM_ERROR,
    /**
     * Error downloading jar files from web start server.  This is specific
     * to the web start installation.
     */
    DOWNLOAD_ERROR,
    /**
     * Error during the configuration of the Directory Server.
     */
    CONFIGURATION_ERROR,
    /**
     * Error during the import of data (base entry, from LDIF file or
     * automatically generated data).
     */
    IMPORT_ERROR,
    /**
     * Error starting the Open DS server.
     */
    START_ERROR,
 
    /**
     * Error stopping the Open DS server.
     */
    STOP_ERROR,
 
    /**
     * Error enabling the Windows service.
     */
    WINDOWS_SERVICE_ERROR,
 
    /**
     * Application specific error.
     */
    APPLICATION,
 
    /**
     * Error invoking an OpenDS tool.
     */
    TOOL_ERROR,
 
    /**
     * A bug (for instance when we throw an IllegalStateException).
     */
    BUG
  }
 
  /**
   * Creates a new ApplicationException of type FILE_SYSTEM_ERROR.
   * @param msg localized exception message
   * @param e Exception cause
   * @return ApplicationException with Type property being FILE_SYSTEM_ERROR
   */
  public static ApplicationException createFileSystemException(String msg,
                                                               Exception e) {
    return new ApplicationException(Type.FILE_SYSTEM_ERROR, msg, e);
  }
 
  /**
   * The constructor of the ApplicationException.
   * @param type the type of error we have.
   * @param localizedMsg a localized string describing the problem.
   * @param rootCause the root cause of this exception.
   */
  public ApplicationException(Type type, String localizedMsg,
                              Throwable rootCause)
  {
    super(localizedMsg, rootCause);
    this.type = type;
  }
 
  /**
   * The constructor of the ApplicationException.
   * @param type the type of error we have.
   * @param localizedMsg a localized string describing the problem.
   * @param formattedMsg a localized message with extra formatting
   * @param rootCause the root cause of this exception.
   */
  public ApplicationException(Type type, String localizedMsg,
                              String formattedMsg, Throwable rootCause)
  {
    super(localizedMsg, rootCause);
    this.formattedMsg = formattedMsg;
    this.type = type;
  }
 
  /**
   * Returns the Type of this exception.
   * @return the Type of this exception.
   */
  public Type getType()
  {
    return type;
  }
 
  /**
   * Gets the localized message with extra formatting markup.
   * @return String representing a formatted message.
   */
  public String getFormattedMessage() {
    return formattedMsg;
  }
 
  /**
   * {@inheritDoc}
   */
  public String toString()
  {
    return getMessage();
  }
}