Delegate abstract class for each of the EC iterables
This is a bit similar to #273 in spirit but it seems different.
My need would be to have wrapper/adapter abstract classes that I could use to have classes that implements one of the EC interface but delegating to an existing implementation.
An example (this is how it is done in guava more or less):
public final class MyClassWhichIsAlsoACollection extends AbstractListIterable<Stuff> {
public MyClassWhichIsAlsoACollection() {
this.xxxx = // create a collection or whatever;
}
protected ListIterable<Stuff> delegate() {
this.xxxx;
}
}
or:
public final class MyClassWhichIsAlsoACollection extends AbstractListIterable<Stuff> {
public MyClassWhichIsAlsoACollection() {
supe(/* create a collection */);
}
}
In a sense, this exactly looks like what ListAdapter is, but it's final unfortunately.
For the record, the closest I found to my need is LazyIterableAdapter.
After some exploration, I think it would be great if all the adapter were non-final so they can be used as wrapper classes.
@motlin @nikhilnanivadekar @donraab would you be open to this? I can make a PR.