View Javadoc
1 /* ==================================================================== 2 * License: 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 11 * 2. Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in 13 * the documentation and/or other materials provided with the 14 * distribution. 15 * 16 * 3. The end-user documentation included with the redistribution, 17 * if any, must include the following acknowledgment: 18 * "This product includes software developed by 19 * Robert Half International (http://www.rhi.com/)." 20 * Alternately, this acknowledgment may appear in the software itself, 21 * if and wherever such third-party acknowledgments normally appear. 22 * 23 * 4. The names "Parc", "RHI", and "Robert Half International" must 24 * not be used to endorse or promote products derived from this 25 * software without prior written permission. For written 26 * permission, please contact pete.mckinstry@rhi.com. 27 * 28 * 5. Products derived from this software may not be called "PARC", 29 * nor may "PARC" appear in their name, without prior written 30 * permission of Robert Half International. 31 * 32 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 33 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 34 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 35 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR 36 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 37 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 38 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 39 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 40 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 41 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 42 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 43 * SUCH DAMAGE. 44 * ==================================================================== 45 * 46 */ 47 package com.rhi.architecture.parc; 48 49 import com.rhi.architecture.config.ConfigFacility; 50 import com.rhi.architecture.config.ConfigurationException; 51 import com.rhi.architecture.resource.ResourceContext; 52 53 import java.util.Properties; 54 55 /*** 56 * AbstractError class. Provides basic error functionality common 57 * to all interface Errors. 58 * 59 * @author Pete McKinstry 60 * @copyright 2002, Robert Half Int'l., Inc. All rights reserved. 61 * 62 * @since 1.0 63 */ 64 public abstract class AbstractError implements Error { 65 66 private ErrorType type; 67 private Exception exception; 68 private Record record; 69 70 private ConfigFacility configFacility = null; 71 72 /*** 73 * default constructor. 74 */ 75 public AbstractError() { 76 super(); 77 } 78 79 /*** 80 * default constructor. 81 * @param type 82 */ 83 public AbstractError(ErrorType type) { 84 this.type = type; 85 } 86 87 /*** 88 * Get the ErrorType object. The type should <bold>never</bold> 89 * be null as it drives behaviour in the Logger class. 90 * 91 * @since 1.0 92 * @return 93 */ 94 public ErrorType getType() { 95 return this.type; 96 } 97 /*** 98 * Set the ErrorType object 99 * 100 * @param type 101 * @since 1.0 102 */ 103 public void setType(ErrorType type) { 104 this.type = type; 105 } 106 107 /*** 108 * If the ErrorType has the printStackTrace() flag enabled, this method 109 * should return the exception object so that the stack trace can be 110 * written to the logfile. If there is no exception, or if the 111 * printStackTrace flag is disabled, the exception can be left unset. 112 * (null). 113 * 114 * @return Exception - the Exception that caused the error. Null if N/A. 115 * 116 * @since 1.0 117 */ 118 public Exception getException() { 119 return this.exception; 120 } 121 /*** 122 * Set the exception object being logged. 123 * 124 * @param ex - the Exception that caused the error. 125 * 126 * @since 1.0 127 */ 128 public void setException(Exception ex) { 129 this.exception = ex; 130 } 131 132 /*** 133 * Get the Record which has the error. The Logger uses this record 134 * to do one or more of the following: 135 * 1) Update the GIT record appropriately. 136 * 2) Add an appropriate error record to the interface error table. 137 * 3) set the appropriate tag values in the template error message. 138 * If the error is not a record level error, (e.g. DB connection 139 * cannot be established.), this method can return null. 140 * 141 * @return the Record associated w/ this error. 142 * @since 1.0 143 */ 144 public Record getRecord() { 145 return this.record; 146 } 147 /*** 148 * Sets the Record to which this Error belongs. 149 * 150 * @param record 151 * 152 * @since 1.0 153 */ 154 public void setRecord(Record record) { 155 this.record = record; 156 } 157 158 /*** 159 * Return all properties 160 * @return Properties 161 */ 162 public Properties getProperties() { 163 Properties props = null; 164 try { 165 ConfigFacility config = getConfigFacility(); 166 if (config != null) { 167 props = config.getProperties(); 168 } 169 } 170 catch (ConfigurationException e) { 171 // do nothing. 172 } 173 return props; 174 } 175 176 /*** 177 * Lookup a single property. 178 * @param name 179 * @return String 180 */ 181 public String getProperty(String name) { 182 ConfigFacility config = getConfigFacility(); 183 if (config != null) { 184 return config.getProperty(name); 185 } 186 return null; 187 } 188 189 /*** 190 * Helper method. 191 * @return ConfigFacility 192 */ 193 private ConfigFacility getConfigFacility() { 194 if (configFacility == null) { 195 ResourceContext ctx = new ResourceContext(); 196 configFacility = (ConfigFacility) ctx.lookup(ConfigFacility.KEY); 197 } 198 return configFacility; 199 } 200 201 }

This page was automatically generated by Maven