[jira] [Updated] (LANG-577) Add ObjectReference interface and two implementations
[ 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.x) Review Patch > 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: Review Patch > > 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 ref) { > ref.set("Hello"); > } > {code} > or for anonymous methods > {code:java} > final ObjectReference ref = new MemoryReference(); > 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 the type of the referenced object > * @author Apache Software Foundation > * @since 3.0 > */ > public interface ObjectReference { > /** > * Getter for the referenced object. > * > * @return the object or null > */ > T get(); > /** > * Setter for the reference. > * > * @param object the object to reference (may be null) > */ > 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 was sent by Atlassian JIRA (v6.1#6144)
[jira] Updated: (LANG-577) Add ObjectReference interface and two implementations
[ 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 ref) { > ref.set("Hello"); > } > {code} > or for anonymous methods > {code:java} > final ObjectReference ref = new MemoryReference(); > 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 the type of the referenced object > * @author Apache Software Foundation > * @since 3.0 > */ > public interface ObjectReference { > /** > * Getter for the referenced object. > * > * @return the object or null > */ > T get(); > /** > * Setter for the reference. > * > * @param object the object to reference (may be null) > */ > 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.
[jira] Updated: (LANG-577) Add ObjectReference interface and two implementations
[ https://issues.apache.org/jira/browse/LANG-577?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joerg Schaible updated LANG-577: Attachment: reference.diff > 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.0 > > 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 ref) { > ref.set("Hello"); > } > {code} > or for anonymous methods > {code:java} > final ObjectReference ref = new MemoryReference(); > 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 the type of the referenced object > * @author Apache Software Foundation > * @since 3.0 > */ > public interface ObjectReference { > /** > * Getter for the referenced object. > * > * @return the object or null > */ > T get(); > /** > * Setter for the reference. > * > * @param object the object to reference (may be null) > */ > 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.