Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * See the file LICENSE for redistribution information.
   *
   * Copyright (c) 2002, 2013 Oracle and/or its affiliates.  All rights reserved.
   *
   */
  package com.sleepycat.je.utilint;
  
 
 
 public class VLSN implements LoggableComparable<VLSN>, Serializable {
     private static final long serialVersionUID = 1L;
 
     public static final int LOG_SIZE = 8;
 
     public static final VLSN NULL_VLSN = new VLSN(-1);
     public static final VLSN FIRST_VLSN = new VLSN(1);
 
     /*
      * A replicated log entry is identified by a sequence id. We may change the
      * VLSN implementation so it's not a first-class object, in order to reduce
      * its in-memory footprint. In that case, the VLSN value would be a long,
      * and this class would provide static utility methods.
      */
     private long sequence;   // sequence number
 
     public VLSN(long sequence) {
         this. = sequence;
     }

    
Constructor for VLSNs that are read from disk.
 
     public VLSN() {
     }
 
     @Override
     public boolean equals(Object obj) {
         if (obj == null) {
             return false;
         }
 
         if (!(obj instanceof VLSN)) {
             return false;
         }
 
         VLSN otherVLSN = (VLSNobj;
         return (otherVLSN.sequence == );
     }
 
     final public boolean equals(VLSN otherVLSN) {
         return (otherVLSN != null) && (otherVLSN.sequence == );
     }
 
     @Override
     public int hashCode() {
         return Long.valueOf().hashCode();
     }
 
     public long getSequence() {
         return ;
     }
 
     public final boolean isNull() {
         return  == .;
     }
 
     public static boolean isNull(long sequence) {
         return sequence == .;
     }

    
Return a VLSN which would follow this one.
 
     public VLSN getNext() {
         return isNull() ?  : new VLSN( + 1);
     }

    
Return a VLSN which would precede this one.
 
     public VLSN getPrev() {
         return (isNull() || ( == 1)) ?
                  :
                 new VLSN( - 1);
     }

    
Return true if this VLSN's sequence directly follows the "other" VLSN. This handles the case where "other" is a NULL_VLSN.
 
     public boolean follows(VLSN other) {
         return ((other.isNull() &&  == 1) ||
                 ((!other.isNull()) &&
                  (other.getSequence() == ( - 1))));
    }

    
Compares this VLSN's sequence with the specified VLSN's sequence for order. Returns a negative integer, zero, or a positive integer as this sequence is less than, equal to, or greater than the specified sequence.
    @Override
    public int compareTo(VLSN other) {
        if (this.equals() &&  other.equals()) {
            return 0;
        }
        if (this.equals()) {
            /* If "this" is null, the other VLSN is always greater. */
            return -1;
        }
        if (other.equals()) {
            /* If the "other" is null, this VLSN is always greater. */
            return 1;
        }
        long otherSequence = other.getSequence();
        if (( - otherSequence) > 0) {
            return 1;
        } else if ( == otherSequence) {
            return 0;
        } else {
            return -1;
        }
    }

    
    @Override
    public int getLogSize() {
        return ;
    }

    
    @Override
    public void writeToLog(ByteBuffer buffer) {
        LogUtils.writeLong(buffer);
    }
    /*
     *  Reading from a byte buffer
     */

    
    @Override
    @SuppressWarnings("unused")
    public void readFromLog(ByteBuffer bufferint entryVersion) {
         = LogUtils.readLong(buffer);
    }

    
    @Override
    @SuppressWarnings("unused")
    public void dumpLog(StringBuilder sbboolean verbose) {
        sb.append("<vlsn v=\"").append(this).append("\">");
    }

    
    @Override
    public long getTransactionId() {
        return 0;
    }

    
    @Override
    public boolean logicalEquals(Loggable other) {
        if (!(other instanceof VLSN)) {
            return false;
        }
        return  == ((VLSNother).;
    }
    @Override
    public String toString() {
        return String.format("%,d");
    }
New to GrepCode? Check out our FAQ X