Mega Code Archive

 
Categories / Java Tutorial / Collections
 

Linked List Entry

import java.io.Externalizable; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; /*  * Copyright 2005 JBoss Inc  *  * Licensed under the Apache License, Version 2.0 (the "License");  * you may not use this file except in compliance with the License.  * You may obtain a copy of the License at  *  *      http://www.apache.org/licenses/LICENSE-2.0  *  * Unless required by applicable law or agreed to in writing, software  * distributed under the License is distributed on an "AS IS" BASIS,  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  * See the License for the specific language governing permissions and  * limitations under the License.  */ public class LinkedListEntry extends AbstractBaseLinkedListNode {     private static final long serialVersionUID = 400L;     private Object            object;     public LinkedListEntry() {     }     public LinkedListEntry(final Object object) {         this.object = object;     }     public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {         super.readExternal(in);         object  = in.readObject();     }     public void writeExternal(ObjectOutput out) throws IOException {         super.writeExternal(out);         out.writeObject(object);     }          public Object getObject() {         return this.object;     }     public int hashCode() {         return this.object.hashCode();     }     public boolean equals(final Object other) {         return this.object.equals( other );     } } /**  * Provides a abstract base implementation that an object can extend so that it can be used in a LinkedList.  *  * @see LinkedList  *  * @author <a href="mailto:mark.proctor@jboss.com">Mark Proctor</a>  * @author <a href="mailto:bob@werken.com">Bob McWhirter</a>  */  class AbstractBaseLinkedListNode     implements     LinkedListNode {     private static final long serialVersionUID = 400L;     private LinkedListNode    previous;     private LinkedListNode    next;     /**      * Empty Constructor      */     public AbstractBaseLinkedListNode() {     }     public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {         previous    = (LinkedListNode)in.readObject();         next    = (LinkedListNode)in.readObject();     }     public void writeExternal(ObjectOutput out) throws IOException {         out.writeObject(previous);         out.writeObject(next);     }     /* (non-Javadoc)      * @see org.drools.reteoo.LinkedListNode#getNext()      */     public LinkedListNode getNext() {         return this.next;     }     /* (non-Javadoc)      * @see org.drools.reteoo.LinkedListNode#setNext(org.drools.reteoo.LinkedListNode)      */     public void setNext(final LinkedListNode next) {         this.next = next;     }     /* (non-Javadoc)      * @see org.drools.reteoo.LinkedListNode#getPrevious()      */     public LinkedListNode getPrevious() {         return this.previous;     }     /* (non-Javadoc)      * @see org.drools.reteoo.LinkedListNode#setPrevious(org.drools.reteoo.LinkedListNode)      */     public void setPrevious(final LinkedListNode previous) {         this.previous = previous;     } }  /**   * Items placed in a <code>LinkedList<code> must implement this interface .   *   * @see LinkedList   *   * @author <a href="mailto:mark.proctor@jboss.com">Mark Proctor</a>   * @author <a href="mailto:bob@werken.com">Bob McWhirter</a>   */   interface LinkedListNode      extends      Externalizable {      /**       * Returns the next node       * @return       *      The next LinkedListNode       */      public LinkedListNode getNext();      /**       * Sets the next node       * @param next       *      The next LinkedListNode       */      public void setNext(LinkedListNode next);      /**       * Returns the previous node       * @return       *      The previous LinkedListNode       */      public LinkedListNode getPrevious();      /**       * Sets the previous node       * @param previous       *      The previous LinkedListNode       */      public void setPrevious(LinkedListNode previous);  }