[
https://issues.apache.org/jira/browse/COLLECTIONS-550?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gonçalo Marques updated COLLECTIONS-550:
----------------------------------------
Description:
Create an utility method that returns an arbitrary {{String}} representation of
a given {{Iterable}}, where for each {{Iterable}} element one may require a
{{String}} representation that is different from the element's own
{{toString()}} result.
Additionally the client may also provide an optional delimiter, where the
default one could be the common {{", "}}.
The transformation of each {{Iterable}} element into an arbitrary {{String}}
could be implemented by the means of a {{Transformer}}.
Example (illustrative method in {{CollectionUtils}}):
{code}
static <C> String toString(Iterable<C> iterable, Transformer<C, String>
transformer);
{code}
Consider the following illustrative class:
{code}
class SomeClass {
private final String propertyOne;
private final String propertyTwo;
public SomeClass(String propertyOne, String propertyTwo) {
this.propertyOne = propertyOne;
this.propertyTwo = propertyTwo;
}
public String getPropertyOne() {
return propertyOne;
}
public String getPropertyTwo() {
return propertyTwo;
}
@Override
public String toString() {
return propertyOne;
}
}
{code}
One could transform an {{Iterable}} containing elements of type {{SomeClass}}
into a client provided {{String}} representation by calling:
{code}
// list contains elements of type SomeClass
String result = CollectionUtils.toString(list, new Transformer<SomeClass,
String>() {
@Override
public String transform(SomeClass someClass) {
return someClass.getPropertyTwo();
}
});
// Will print "propertyTwoA, propertyTwoB"
System.out.println(result);
result = CollectionUtils.toString(list, new Transformer<SomeClass, String>() {
@Override
public String transform(SomeClass someClass) {
return someClass.getPropertyOne() + someClass.getPropertyTwo();
}
});
// Will print propertyOneApropertyTwoA, propertyOneBpropertyTwoB
System.out.println(result);
{code}
was:
Create an utility method that returns an arbitrary {{String}} representation of
a given {{Iterable}}, where for each {{Iterable}} element one may require a
{{String}} representation that is different from the element's own
{{toString()}} result.
Additionally the client may also provide an optional delimiter, where the
default one could be the common {{", "}}.
The transformation of each {{Iterable}} element into an arbitrary {{String}}
could be implemented by the means of a {{Transformer}}.
Example (illustrative method in {{CollectionUtils}}):
{code}
static <C> String toString(Iterable<C> iterable, Transformer<C, String>
transformer);
{code}
Consider the following illustrative class:
{code}
class SomeClass {
private final String propertyOne;
private final String propertyTwo;
public SomeClass(String propertyOne, String propertyTwo) {
this.propertyOne = propertyOne;
this.propertyTwo = propertyTwo;
}
public String getPropertyOne() {
return propertyOne;
}
public String getPropertyTwo() {
return propertyTwo;
}
@Override
public String toString() {
return propertyOne;
}
}
{code}
One could transform an {{Iterable}} containing elements of type {{SomeClass}}
into a client provided {{String}} representation by calling:
{code}
// list contains elements of type SomeClass
String result = CollectionUtils.transform(list, new Transformer<SomeClass,
String>() {
@Override
public String transform(SomeClass someClass) {
return someClass.getPropertyTwo();
}
});
// Will print "propertyTwoA, propertyTwoB"
System.out.println(result);
result = CollectionUtils.transform(list, new Transformer<SomeClass, String>() {
@Override
public String transform(SomeClass someClass) {
return someClass.getPropertyOne() + someClass.getPropertyTwo();
}
});
// Will print propertyOneApropertyTwoA, propertyOneBpropertyTwoB
System.out.println(result);
{code}
> Provide a simple way for creating an arbitrary String representation of a
> given Iterable
> ----------------------------------------------------------------------------------------
>
> Key: COLLECTIONS-550
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-550
> Project: Commons Collections
> Issue Type: New Feature
> Components: Collection
> Affects Versions: 4.0
> Reporter: Gonçalo Marques
> Priority: Minor
> Labels: collection, util
>
> Create an utility method that returns an arbitrary {{String}} representation
> of a given {{Iterable}}, where for each {{Iterable}} element one may require
> a {{String}} representation that is different from the element's own
> {{toString()}} result.
> Additionally the client may also provide an optional delimiter, where the
> default one could be the common {{", "}}.
> The transformation of each {{Iterable}} element into an arbitrary {{String}}
> could be implemented by the means of a {{Transformer}}.
> Example (illustrative method in {{CollectionUtils}}):
> {code}
> static <C> String toString(Iterable<C> iterable, Transformer<C, String>
> transformer);
> {code}
> Consider the following illustrative class:
> {code}
> class SomeClass {
> private final String propertyOne;
> private final String propertyTwo;
> public SomeClass(String propertyOne, String propertyTwo) {
> this.propertyOne = propertyOne;
> this.propertyTwo = propertyTwo;
> }
> public String getPropertyOne() {
> return propertyOne;
> }
> public String getPropertyTwo() {
> return propertyTwo;
> }
> @Override
> public String toString() {
> return propertyOne;
> }
> }
> {code}
> One could transform an {{Iterable}} containing elements of type {{SomeClass}}
> into a client provided {{String}} representation by calling:
> {code}
> // list contains elements of type SomeClass
> String result = CollectionUtils.toString(list, new Transformer<SomeClass,
> String>() {
> @Override
> public String transform(SomeClass someClass) {
> return someClass.getPropertyTwo();
> }
> });
> // Will print "propertyTwoA, propertyTwoB"
> System.out.println(result);
> result = CollectionUtils.toString(list, new Transformer<SomeClass, String>() {
> @Override
> public String transform(SomeClass someClass) {
> return someClass.getPropertyOne() + someClass.getPropertyTwo();
> }
> });
> // Will print propertyOneApropertyTwoA, propertyOneBpropertyTwoB
> System.out.println(result);
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)