View Javadoc
1 package org.apache.turbine.util; 2 3 /* ==================================================================== 4 * The Apache Software License, Version 1.1 5 * 6 * Copyright (c) 2001 The Apache Software Foundation. All rights 7 * reserved. 8 * 9 * Redistribution and use in source and binary forms, with or without 10 * modification, are permitted provided that the following conditions 11 * are met: 12 * 13 * 1. Redistributions of source code must retain the above copyright 14 * notice, this list of conditions and the following disclaimer. 15 * 16 * 2. Redistributions in binary form must reproduce the above copyright 17 * notice, this list of conditions and the following disclaimer in 18 * the documentation and/or other materials provided with the 19 * distribution. 20 * 21 * 3. The end-user documentation included with the redistribution, 22 * if any, must include the following acknowledgment: 23 * "This product includes software developed by the 24 * Apache Software Foundation (http://www.apache.org/)." 25 * Alternately, this acknowledgment may appear in the software itself, 26 * if and wherever such third-party acknowledgments normally appear. 27 * 28 * 4. The names "Apache" and "Apache Software Foundation" and 29 * "Apache Turbine" must not be used to endorse or promote products 30 * derived from this software without prior written permission. For 31 * written permission, please contact apache@apache.org. 32 * 33 * 5. Products derived from this software may not be called "Apache", 34 * "Apache Turbine", nor may "Apache" appear in their name, without 35 * prior written permission of the Apache Software Foundation. 36 * 37 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 38 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 39 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 40 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR 41 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 42 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 43 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 44 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 45 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 46 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 47 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 48 * SUCH DAMAGE. 49 * ==================================================================== 50 * 51 * This software consists of voluntary contributions made by many 52 * individuals on behalf of the Apache Software Foundation. For more 53 * information on the Apache Software Foundation, please see 54 * <http://www.apache.org/>;. 55 */ 56 57 import java.io.BufferedInputStream; 58 import java.io.ByteArrayInputStream; 59 import java.io.IOException; 60 import java.io.ObjectInputStream; 61 import java.util.Hashtable; 62 import java.util.Vector; 63 64 /*** 65 * This is where common Object manipulation routines should go. 66 * 67 * @author <a href="mailto:nissim@nksystems.com">Nissim Karpenstein</a> 68 * @version $Id: ObjectUtils.java,v 1.2 2002/07/11 16:53:21 mpoeschl Exp $ 69 */ 70 public class ObjectUtils 71 { 72 /*** 73 * Returns a default value if the object passed is null. 74 * 75 * @param o The object to test. 76 * @param dflt The default value to return. 77 * @return The object o if it is not null, dflt otherwise. 78 */ 79 public static Object isNull(Object o, Object dflt) 80 { 81 if (o == null) 82 { 83 return dflt; 84 } 85 else 86 { 87 return o; 88 } 89 } 90 91 /*** 92 * Adds an object to a vector, making sure the object is in the 93 * vector only once. 94 * 95 * @param v The vector. 96 * @param o The object. 97 */ 98 public static void addOnce(Vector v, Object o) 99 { 100 if (! v.contains( o )) 101 { 102 v.addElement( o ); 103 } 104 } 105 106 /*** 107 * Deserializes a single object from an array of bytes. 108 * 109 * @param objectData The serialized object. 110 * @return The deserialized object, or <code>null</code> on failure. 111 */ 112 public static Object deserialize(byte[] objectData) 113 { 114 Object object = null; 115 if (objectData != null) 116 { 117 // These streams are closed in finally. 118 ObjectInputStream in = null; 119 ByteArrayInputStream bin = new ByteArrayInputStream(objectData); 120 BufferedInputStream bufin = new BufferedInputStream(bin); 121 try 122 { 123 in = new ObjectInputStream(bufin); 124 125 // If objectData has not been initialized, an 126 // exception will occur. 127 object = in.readObject(); 128 } 129 catch (Exception e) 130 { 131 } 132 finally 133 { 134 try 135 { 136 if (in != null) 137 { 138 in.close(); 139 } 140 if (bufin != null) 141 { 142 bufin.close(); 143 } 144 if (bin != null) 145 { 146 bin.close(); 147 } 148 } 149 catch(IOException e) 150 { 151 } 152 } 153 } 154 return object; 155 } 156 157 /*** 158 * Compares two Objects, returns true if their values are the 159 * same. It checks for null values prior to an o1.equals(o2) 160 * check 161 * 162 * @param o1 The first object. 163 * @param o2 The second object. 164 * @return True if the values of both xstrings are the same. 165 */ 166 public static boolean equals(Object o1, Object o2 ) 167 { 168 if (o1 == null) 169 { 170 return (o2 == null); 171 } 172 else if (o2 == null) 173 { 174 // o1 is not null 175 return false; 176 } 177 else 178 { 179 return o1.equals(o2); 180 } 181 } 182 183 /*** 184 * Nice method for adding data to a Hashtable in such a way 185 * as to not get NPE's. The point being that if the 186 * value is null, Hashtable.put() will throw an exception. 187 * That blows in the case of this class cause you may want to 188 * essentially treat put("Not Null", null ) == put("Not Null", "") 189 * We will still throw a NPE if the key is null cause that should 190 * never happen. 191 */ 192 public static final void safeAddToHashtable(Hashtable hash, Object key, 193 Object value) 194 throws NullPointerException 195 { 196 if (value == null) 197 { 198 hash.put(key, ""); 199 } 200 else 201 { 202 hash.put(key, value); 203 } 204 } 205 }

This page was automatically generated by Maven