/**
*
*/
package org.goko.core.gcode.rs274ngcv3.jogl.internal;
import java.util.Iterator;
import java.util.LinkedList;
import org.apache.commons.lang3.ObjectUtils;
import org.goko.core.common.exception.GkException;
/**
* @author Psyko
* @date 10 juil. 2016
*/
public class GCodeContextProviderLinkedList extends LinkedList<LinkedGCodeContextProvider> {
public LinkedGCodeContextProvider findExecutionTokenByIdExecutionToken(Integer idExecutionToken) throws GkException {
// Search the matching context provider
Iterator<LinkedGCodeContextProvider> iter = descendingIterator();
while (iter.hasNext()) {
LinkedGCodeContextProvider lclContextProvider = (LinkedGCodeContextProvider) iter.next();
if (ObjectUtils.equals(lclContextProvider.getToken().getId(), idExecutionToken)) {
return lclContextProvider;
}
}
return null;
}
public LinkedGCodeContextProvider findExecutionTokenAfter(Integer idExecutionToken) throws GkException{
LinkedGCodeContextProvider previous = null;
// Search the matching context provider
Iterator<LinkedGCodeContextProvider> iter = descendingIterator();
while (iter.hasNext()) {
LinkedGCodeContextProvider lclContextProvider = (LinkedGCodeContextProvider) iter.next();
if (ObjectUtils.equals(lclContextProvider.getToken().getId(), idExecutionToken)) {
break;
}
previous = lclContextProvider;
}
return previous;
}
public LinkedGCodeContextProvider findExecutionTokenBefore(Integer idExecutionToken) throws GkException{
LinkedGCodeContextProvider previous = null;
// Search the matching context provider
Iterator<LinkedGCodeContextProvider> iter = descendingIterator();
while (iter.hasNext()) {
LinkedGCodeContextProvider lclContextProvider = (LinkedGCodeContextProvider) iter.next();
if (ObjectUtils.equals(lclContextProvider.getToken().getId(), idExecutionToken)) {
if(iter.hasNext()){
previous = iter.next();
}
break;
}
}
return previous;
}
}