commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Henri Yandell (JIRA)" <j...@apache.org>
Subject [jira] Updated: (LANG-577) Add ObjectReference interface and two implementations
Date Mon, 25 Jan 2010 06:44:34 GMT

     [ https://issues.apache.org/jira/browse/LANG-577?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Henri Yandell updated LANG-577:
-------------------------------

    Fix Version/s:     (was: 3.0)
                   3.1

No backwards compat issues, so moving to 3.1. If resolved before 3.0 is released please assign
to 3.0.

> Add ObjectReference interface and two implementations
> -----------------------------------------------------
>
>                 Key: LANG-577
>                 URL: https://issues.apache.org/jira/browse/LANG-577
>             Project: Commons Lang
>          Issue Type: New Feature
>          Components: lang.*
>            Reporter: Joerg Schaible
>            Assignee: Joerg Schaible
>            Priority: Minor
>             Fix For: 3.1
>
>         Attachments: reference.diff
>
>
> In some situations it would be helpful to use a reference to an object, e.g. for parameters
by reference
> {code:java}
> void doSomething(ObjectReference<String> ref) {
>     ref.set("Hello");
> }
> {code}
> or for anonymous methods
> {code:java}
> final ObjectReference<String> ref = new MemoryReference<String>();
> final Runnable r = new Runnable() {
>     void run() {
>         ref.set("Hello");
>     }
> }
> r.run();
> {code}
> Additionally it is sometimes useful to keep the reference in other places than in shared
memory, e.g. in a ThreadLocal or in case of a web application in a scoped reference or even
in combination with some other persistence mechanism. Basically I am proposing the interface
ObjectReference:
> {code:Java}
> /**
>  * Interface to reference an object.
>  * 
>  * @param <T> the type of the referenced object
>  * @author Apache Software Foundation
>  * @since 3.0
>  */
> public interface ObjectReference<T> {
>     /**
>      * Getter for the referenced object.
>      * 
>      * @return the object or <code>null</code>
>      */
>     T get();
>     /**
>      * Setter for the reference.
>      * 
>      * @param object the object to reference (may be <code>null</code>)
>      */
>     void set(T object);
> }
> {code}
> and the two implementations MemoryReference and ThreadLocalReference in the new package
org.apache.commons.lang3.reference. I've seen such or similar types in various libraries.
> Comments?
> Unit test will be provided also.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message