From 2fb142292bf0239027b4386e1c97369e8438a376 Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Thu, 19 Mar 2009 22:53:17 +0100 Subject: [PATCH] Add object wrapper. --- .../pterodactylus/util/thread/ObjectWrapper.java | 65 ++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 src/net/pterodactylus/util/thread/ObjectWrapper.java 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; + } + +} -- 2.7.4