From: David ‘Bombe’ Roden Date: Thu, 19 Mar 2009 21:53:17 +0000 (+0100) Subject: Add object wrapper. X-Git-Tag: v0.1.1~82 X-Git-Url: https://git.pterodactylus.net/?p=jFCPlib.git;a=commitdiff_plain;h=2fb142292bf0239027b4386e1c97369e8438a376 Add object wrapper. --- diff --git a/src/net/pterodactylus/util/thread/ObjectWrapper.java b/src/net/pterodactylus/util/thread/ObjectWrapper.java new file mode 100644 index 0000000..9cc61c0 --- /dev/null +++ b/src/net/pterodactylus/util/thread/ObjectWrapper.java @@ -0,0 +1,65 @@ +/* + * jFCPlib - UserObject.java - + * Copyright © 2009 David Roden + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +package net.pterodactylus.util.thread; + +/** + * Wrapper around an object that can be set and retrieved. Its primary use is as + * a container for return values from anonymous classes. + * + *
+ * ObjectWrapper<Object> objectWrapper = new ObjectWrapper<Object>();
+ * new Runnable() {
+ *     public void run() {
+ *         ...
+ *         objectWrapper.set(someResult);
+ *     }
+ * }.run();
+ * Object result = objectWrapper.get();
+ * 
+ * + * @param + * The type of the wrapped object + * @author David ‘Bombe’ Roden <bombe@pterodactylus.net> + */ +public class ObjectWrapper { + + /** The wrapped object. */ + private volatile T wrappedObject; + + /** + * Returns the wrapped object. + * + * @return The wrapped object + */ + public T get() { + return wrappedObject; + } + + /** + * Sets the wrapped object. + * + * @param wrappedObject + * The wrapped object + */ + public void set(T wrappedObject) { + this.wrappedObject = wrappedObject; + } + +}