[ 
https://issues.apache.org/jira/browse/JENA-966?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14647612#comment-14647612
 ] 

ASF GitHub Bot commented on JENA-966:
-------------------------------------

Github user ajs6f commented on a diff in the pull request:

    https://github.com/apache/jena/pull/90#discussion_r35869523
  
    --- Diff: jena-base/src/main/java/org/apache/jena/atlas/iterator/Iter.java 
---
    @@ -29,6 +29,14 @@
     import org.apache.jena.atlas.lib.Closeable ;
     import org.apache.jena.atlas.lib.Sink ;
     
    +/**
    + * Iter provides utilities for working with {@link Iterator}s.
    + *
    + * Iter should never be used as a return type or parameter type in the 
public contract of a class. It is only to be used
    + * inside implementation code and is instantiated only to allow 
method-chaining as part of a calculation.
    --- End diff --
    
    What I meant by "difference" was context of use. In other words, what I 
have been trying to get at with this conversation, as I have written, is the 
answer to "When should one use `Iter`, and when should one use 
`ExtendedIterator`?" I tried to use `Iter` inside an `ExtendedIterator` during 
JENA-966 and you explained that this was wrong, and I am trying to get Javadocs 
into these classes so that other people don't have the same confusion. 
    
    I still have no idea when to use either. If the difference is purely 
historical, then there is no inherent need for both, and perhaps I should open 
a ticket for a slow, careful, un-disruptive migration towards a single type for 
these purposes?


> LazyIterator
> ------------
>
>                 Key: JENA-966
>                 URL: https://issues.apache.org/jira/browse/JENA-966
>             Project: Apache Jena
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: Jena 3.0.0
>            Reporter: Claude Warren
>            Assignee: Claude Warren
>             Fix For: Jena 3.0.0
>
>
> LazyIterator is an abstract class.  The documentation indicates that the 
> create() method needs to be overridden to create an instance.  From this I 
> would expect that 
> now LazyIterator(){
> @Override
> public ExtendedIterator<Model> create() {
>                       ...
> }};
> Would work however LazyIterator does not override:
> remoteNext(), andThen(), toList(), and toSet().
> I believe these should be implemented in the class.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to