com.groupbyinc.common.jackson.databind.util.LinkedNode Maven / Gradle / Ivy
package com.fasterxml.jackson.databind.util;
/**
* Node of a forward-only linked list.
*
* @author tatu
*/
public final class LinkedNode
{
private final T value;
private LinkedNode next;
public LinkedNode(T value, LinkedNode next)
{
this.value = value;
this.next = next;
}
public void linkNext(LinkedNode n)
{
if (next != null) { // sanity check
throw new IllegalStateException();
}
next = n;
}
public LinkedNode next() { return next; }
public T value() { return value; }
/**
* Convenience method that can be used to check if a linked list
* with given head node (which may be null to indicate empty list)
* contains given value
*
* @param Type argument that defines contents of the linked list parameter
* @param node Head node of the linked list
* @param value Value to look for
* @return True if linked list contains the value, false otherwise
*/
public static boolean contains(LinkedNode node, ST value)
{
while (node != null) {
if (node.value() == value) {
return true;
}
node = node.next();
}
return false;
}
}