You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "ori (JIRA)" <ji...@apache.org> on 2009/01/07 22:46:44 UTC

[jira] Created: (COLLECTIONS-309) IteratorChain should include factory methods for decorating iterator lists and arrays into locked IteratorChain.

IteratorChain should include factory methods for decorating iterator lists and arrays into locked IteratorChain.
----------------------------------------------------------------------------------------------------------------

                 Key: COLLECTIONS-309
                 URL: https://issues.apache.org/jira/browse/COLLECTIONS-309
             Project: Commons Collections
          Issue Type: Improvement
          Components: Iterator
    Affects Versions: 3.2
         Environment: n/a
            Reporter: ori
            Priority: Minor


IteratorChain should not instantiate an ArrayList for every new instance.

A private constructor taking a list should be added.

Then we can add static factory methods for decorating a list of iterators to produce a locked chain:

    public static IteratorChain decorate( List iterators )
    {
        final IteratorChain chain = new IteratorChain( iterators );
        chain.lockChain();
        return chain;
    }

    private IteratorChain( List iteratorChain )
    {
        this.iteratorChain = iteratorChain;
    }

    public IteratorChain()
    {
        this( new ArrayList() );
    }

Some other observations:

1. There's a copy/paste mistake in the comment above the isLocked member declaration (it says ComparatorChain is "locked" after the first time compare(Object,Object) is called).

2. It's probably impossible to change now but the naming/semantics of IteratorChain, ComparatorChain, and ChainedTransformer should all be identical. There's a lot of duplicated functionality among these 3 classes.

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