| /* Copyright (c) 2006-2009 Jan S. Rellermeyer |
| * Systems Group, |
| * Department of Computer Science, ETH Zurich. |
| * All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions are met: |
| * - Redistributions of source code must retain the above copyright notice, |
| * this list of conditions and the following disclaimer. |
| * - Redistributions in binary form must reproduce the above copyright |
| * notice, this list of conditions and the following disclaimer in the |
| * documentation and/or other materials provided with the distribution. |
| * - Neither the name of ETH Zurich nor the names of its contributors may be |
| * used to endorse or promote products derived from this software without |
| * specific prior written permission. |
| * |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
| * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
| * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE |
| * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
| * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
| * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
| * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
| * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
| * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
| * POSSIBILITY OF SUCH DAMAGE. |
| */ |
| package ch.ethz.iks.r_osgi.types; |
| |
| import java.io.Serializable; |
| |
| /** |
| * Boxes a primitive value for remote method calls that have primitive type |
| * arguments. |
| * |
| * @author Jan S. Rellermeyer, ETH Zurich. |
| * @since 0.4 |
| */ |
| public final class BoxedPrimitive implements Serializable { |
| /** |
| * the serial UID. |
| */ |
| private static final long serialVersionUID = 5293209550505179288L; |
| |
| /** |
| * the boxed value. |
| */ |
| private Object boxed; |
| |
| /** |
| * hidden default constructor. |
| */ |
| private BoxedPrimitive() { |
| |
| } |
| |
| /** |
| * create from object. |
| * |
| * @param o |
| * the object. |
| */ |
| public BoxedPrimitive(final Object o) { |
| this(); |
| boxed = o; |
| } |
| |
| /** |
| * box an <code>int</code> value. |
| * |
| * @param i |
| * the int value. |
| */ |
| public BoxedPrimitive(final int i) { |
| boxed = Integer.valueOf(i); |
| } |
| |
| /** |
| * box a <code>boolean</code> value. |
| * |
| * @param b |
| * the <code>boolean</code> value. |
| */ |
| public BoxedPrimitive(final boolean b) { |
| boxed = new Boolean(b); |
| } |
| |
| /** |
| * box a <code>long</code> value. |
| * |
| * @param l |
| * the <code>long</code> value. |
| */ |
| public BoxedPrimitive(final long l) { |
| boxed = new Long(l); |
| } |
| |
| /** |
| * box a <code>char</code> value. |
| * |
| * @param c |
| * the <code>char</code> value. |
| */ |
| public BoxedPrimitive(final char c) { |
| boxed = new Character(c); |
| } |
| |
| /** |
| * box a <code>double</code> value. |
| * |
| * @param d |
| * the <code>double</code> value. |
| */ |
| public BoxedPrimitive(final double d) { |
| boxed = new Double(d); |
| } |
| |
| /** |
| * box a <code>float</code> value. |
| * |
| * @param f |
| * the <code>float</code> value. |
| */ |
| public BoxedPrimitive(final float f) { |
| boxed = new Float(f); |
| } |
| |
| /** |
| * box a <code>short</code> value. |
| * |
| * @param s |
| * the <code>short</code> value. |
| */ |
| public BoxedPrimitive(final short s) { |
| boxed = new Short(s); |
| } |
| |
| /** |
| * box a <code>byte</code> value. |
| * |
| * @param b |
| * the <code>short</code> value. |
| */ |
| public BoxedPrimitive(final byte b) { |
| boxed = new Byte(b); |
| } |
| |
| /** |
| * get the boxed value. |
| * |
| * @return the boxing object. |
| */ |
| public Object getBoxed() { |
| return boxed; |
| } |
| |
| public String toString() { |
| return "BoxedPrimitive{" + boxed.toString() + "}"; //$NON-NLS-1$ //$NON-NLS-2$ |
| } |
| |
| /** |
| * check for equality. |
| * |
| * @param o |
| * the other object. |
| * @return true, iff equal. |
| */ |
| public boolean equals(final Object o) { |
| return boxed.equals(o); |
| } |
| |
| /** |
| * get the hash code. |
| * |
| * @return the hash code. |
| */ |
| public int hashCode() { |
| return boxed.hashCode(); |
| } |
| |
| } |