class JexlNodeSet implements Set<JexlNode> {

    @Override
    public boolean addAll(Collection<? extends JexlNode> collection) {
        boolean modified = false;
        if (collection != null) {
            
            // If the collection is a JexlNodeSet then avoid regenerating all of the node keys.
            if (collection instanceof JexlNodeSet) {
                return directAddAll((JexlNodeSet) collection);
            }
            
            for (Object o : collection) {
                if (o instanceof JexlNode) {
                    if (add((JexlNode) o)) {
                        modified = true;
                    }
                }
            }
        }
        return modified;
    }

    public  JexlNodeSet();
    public  JexlNodeSet(boolean useSourceNodeForKeys);

}