diff options
Diffstat (limited to 'src/org/clojure/runtime/Iter.java')
-rw-r--r-- | src/org/clojure/runtime/Iter.java | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/org/clojure/runtime/Iter.java b/src/org/clojure/runtime/Iter.java new file mode 100644 index 00000000..82e1db5a --- /dev/null +++ b/src/org/clojure/runtime/Iter.java @@ -0,0 +1,38 @@ +/** + * Copyright (c) Rich Hickey. All rights reserved. + * The use and distribution terms for this software are covered by the + * Common Public License 1.0 (http://opensource.org/licenses/cpl.php) + * which can be found in the file CPL.TXT at the root of this distribution. + * By using this software in any fashion, you are agreeing to be bound by + * the terms of this license. + * You must not remove this notice, or any other, from this software. + **/ + +/* rich Apr 3, 2006 10:54:14 AM */ + +package org.clojure.runtime; + + +/** + * Implements a sequential iteration protocol + * <pre> + * for(Iter i = getAnIter();i!=null;i = i.iterate()) + * { + * //use i.get() + * } + * </pre> + */ +public interface Iter{ +/** + * Multiple calls to get() are allowed prior to calling iterate() + * @return the currently referenced item/element/value + */ +public Object get(); + +/** + * This may destroy or otherwise invalidate the object it is called upon + * so always capture and use the return value (even though sometimes you may find it is the same object) + * @return The next iter to use, or null if at end of sequence + */ +public Iter iterate(); +} |