org.ccnx.ccn.profiles.versioning.VersionNumber Class Reference

Represent the version used in a CCNx name. More...

Inheritance diagram for org.ccnx.ccn.profiles.versioning.VersionNumber:

List of all members.

Public Member Functions

 VersionNumber ()
 Create a VersionNUmber with the current timestamp from the system clock.
 VersionNumber (CCNTime version)
 Create a VersionNumber based on the binaryTime of version.
 VersionNumber (long msecSinceEpoch)
 Create a version number from the milliseconds since epoch (as per System.currentTimeMillis or CCNTime.getTime).
 VersionNumber (ContentName versionedNamed) throws VersionMissingException
 Given a versioned ContentName, extract the version number from the end.
 VersionNumber (byte[] versionComponent)
 Create a VersionNumber from a byte array, such as from a ContentName component.
 VersionNumber (VersionNumber version1a)
byte[] getVersionBytes ()
 Return the byte array corresponding to this version, to be used in the construction of a ContentName.
CCNTime getAsTime ()
 Returns a new CCNTime object representing the version.
long getAsMillis ()
 A representation of the version as milli-seconds since the epoch (as per System.currentTimeMillis).
VersionNumber addAndReturn (long count)
 Internal binary representation.
VersionNumber addMillisecondsAndreturn (long msec)
 Add (or subtract) the given number of milliseconds from the version and return a new object.
int compareTo (VersionNumber other) throws ClassCastException
boolean equals (Object obj) throws ClassCastException
int hashCode ()
String toString ()
 return the URI-encoded representation and the msec representation as: "%s (%d)"
String printAsVersionComponent ()
 Print the URI-encoded representation.
boolean before (VersionNumber time)
boolean after (VersionNumber time)
boolean before (CCNTime time)
boolean after (CCNTime time)

Static Public Member Functions

static VersionNumber now ()
static VersionNumber getMaximumVersion ()
static VersionNumber getMinimumVersion ()

Static Protected Member Functions

static boolean isLessThanUnsigned (long n1, long n2)
 To compare versions, we need unsigned math.
static byte[] copyOf (byte[] input, int length)
 Copy input to a new array of length, padding with 0's as necessary.

Protected Attributes

final CCNTime _version
final byte[] _versionComponent
final long _binaryTime
String _asString = null

Static Protected Attributes

static final VersionNumber minVersionNumber = new VersionNumber(VersioningProfile.MIN_VERSION_MARKER)
static final VersionNumber maxVersionNumber = new VersionNumber(VersioningProfile.MAX_VERSION_MARKER)


Detailed Description

Represent the version used in a CCNx name.

The core of this is based on a CCNTime, but CCNTime has two different uses (getTime as long since epoch and binaryTime), which ends up being confusing. This class should eventually be updated to just operate on the raw byte array.

A version number is an immutable object.

This class is currently only used in the versioning package, not in the VersioningProfile or elsewhere in the code.


Constructor & Destructor Documentation

org.ccnx.ccn.profiles.versioning.VersionNumber.VersionNumber ( CCNTime  version  ) 

Create a VersionNumber based on the binaryTime of version.

Parameters:
version 

org.ccnx.ccn.profiles.versioning.VersionNumber.VersionNumber ( long  msecSinceEpoch  ) 

Create a version number from the milliseconds since epoch (as per System.currentTimeMillis or CCNTime.getTime).

Parameters:
msecSinceEpoch 

org.ccnx.ccn.profiles.versioning.VersionNumber.VersionNumber ( ContentName  versionedNamed  )  throws VersionMissingException

Given a versioned ContentName, extract the version number from the end.

Parameters:
versionedNamed 
Exceptions:
IllegalArgumentException if the name is unversioned
VersionMissingException 

org.ccnx.ccn.profiles.versioning.VersionNumber.VersionNumber ( byte[]  versionComponent  ) 

Create a VersionNumber from a byte array, such as from a ContentName component.

Parameters:
versionComponent 


Member Function Documentation

byte [] org.ccnx.ccn.profiles.versioning.VersionNumber.getVersionBytes (  ) 

Return the byte array corresponding to this version, to be used in the construction of a ContentName.

Includes the version marker FD.

Returns:
A copy of the internal byte array.

long org.ccnx.ccn.profiles.versioning.VersionNumber.getAsMillis (  ) 

A representation of the version as milli-seconds since the epoch (as per System.currentTimeMillis).

Returns:

VersionNumber org.ccnx.ccn.profiles.versioning.VersionNumber.addAndReturn ( long  count  ) 

Internal binary representation.

Try not to use.

Returns:
Add (or subtract if negative) arg from the current version and return a new object. The caller should understand that the value is used as an unsigned long.

VersionNumber org.ccnx.ccn.profiles.versioning.VersionNumber.addMillisecondsAndreturn ( long  msec  ) 

Add (or subtract) the given number of milliseconds from the version and return a new object.

Parameters:
msec 
Returns:

String org.ccnx.ccn.profiles.versioning.VersionNumber.printAsVersionComponent (  ) 

Print the URI-encoded representation.

Returns:

static boolean org.ccnx.ccn.profiles.versioning.VersionNumber.isLessThanUnsigned ( long  n1,
long  n2 
) [static, protected]

To compare versions, we need unsigned math.

Parameters:
n1 
n2 
Returns:
true if n1 < n2 unsigned

boolean org.ccnx.ccn.profiles.versioning.VersionNumber.before ( VersionNumber  time  ) 

Parameters:
time 
Returns:
true if this version is strictly less than time

boolean org.ccnx.ccn.profiles.versioning.VersionNumber.after ( VersionNumber  time  ) 

Parameters:
time 
Returns:
true if this version is strictly greater than time

boolean org.ccnx.ccn.profiles.versioning.VersionNumber.before ( CCNTime  time  ) 

Parameters:
time 
Returns:
true if this version is strictly less than time

boolean org.ccnx.ccn.profiles.versioning.VersionNumber.after ( CCNTime  time  ) 

Parameters:
time 
Returns:
true if this version is strictly greater than time

static byte [] org.ccnx.ccn.profiles.versioning.VersionNumber.copyOf ( byte[]  input,
int  length 
) [static, protected]

Copy input to a new array of length, padding with 0's as necessary.

This is necessary because Java 1.5 does not support Arrays.copyof()

Parameters:
input 
length 
Returns:


The documentation for this class was generated from the following file:

Generated on Thu Feb 16 00:45:05 2012 for Content-Centric Networking in Java by  doxygen 1.5.6