package com.fasterxml.jackson.databind.util; /** * Node of a forward-only linked list. * * @author tatu */ public final class LinkedNode<T> { private final T value; private LinkedNode<T> next; public LinkedNode(T value, LinkedNode<T> next) { this.value = value; this.next = next; } public void linkNext(LinkedNode<T> n) { if (next != null) { // sanity check throw new IllegalStateException(); } next = n; } public LinkedNode<T> 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 <ST> 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 <ST> boolean contains(LinkedNode<ST> node, ST value) { while (node != null) { if (node.value() == value) { return true; } node = node.next(); } return false; } }