All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.snapscript.core.stack.StackElementIterator Maven / Gradle / Ivy

package org.snapscript.core.stack;

import java.util.Iterator;

import org.snapscript.core.function.Function;
import org.snapscript.core.trace.Trace;

public class StackElementIterator {
   
   private final Iterator iterator;
   
   public StackElementIterator(StackTrace stack) {
      this.iterator = stack.iterator();
   }
   
   public boolean hasNext() {
      return iterator.hasNext();
   }
   
   public StackElement next() {
      while(iterator.hasNext()) {
         Object value = iterator.next();
         
         if(Trace.class.isInstance(value)) {
            Trace trace = (Trace)value;
            
            while(iterator.hasNext()) {
               Object next = iterator.next();
               
               if(Function.class.isInstance(next)) {
                  return new StackElement(trace, (Function)next);
               }
            }
            return new StackElement(trace);
         }
      }
      return null;
   }
   

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy