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

com.fasterxml.jackson.databind.util.LinkedNode Maven / Gradle / Ivy

The newest version!
package com.fasterxml.jackson.databind.util;

/**
 * Node of a forward-only linked list.
 * 
 * @author tatu
 *
 * @param  Type of contained object
 */
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;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy