org.eclipse.jgit.lib
Class SymbolicRef

java.lang.Object
  extended by org.eclipse.jgit.lib.SymbolicRef
All Implemented Interfaces:
Ref

public class SymbolicRef
extends Object
implements Ref

A reference that indirectly points at another Ref.

A symbolic reference always derives its current value from the target reference.


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.eclipse.jgit.lib.Ref
Ref.Storage
 
Constructor Summary
SymbolicRef(String refName, Ref target)
          Create a new ref pairing.
 
Method Summary
 Ref getLeaf()
          Traverse target references until Ref.isSymbolic() is false.
 String getName()
          What this ref is called within the repository.
 ObjectId getObjectId()
          Cached value of this ref.
 ObjectId getPeeledObjectId()
          Cached value of ref^{} (the ref peeled to commit).
 Ref.Storage getStorage()
          How was this ref obtained?
 Ref getTarget()
          Get the reference this reference points to, or this.
 boolean isPeeled()
           
 boolean isSymbolic()
          Test if this reference is a symbolic reference.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SymbolicRef

public SymbolicRef(String refName,
                   Ref target)
Create a new ref pairing.

Parameters:
refName - name of this ref.
target - the ref we reference and derive our value from.
Method Detail

getName

public String getName()
Description copied from interface: Ref
What this ref is called within the repository.

Specified by:
getName in interface Ref
Returns:
name of this ref.

isSymbolic

public boolean isSymbolic()
Description copied from interface: Ref
Test if this reference is a symbolic reference.

A symbolic reference does not have its own ObjectId value, but instead points to another Ref in the same database and always uses that other reference's value as its own.

Specified by:
isSymbolic in interface Ref
Returns:
true if this is a symbolic reference; false if this reference contains its own ObjectId.

getLeaf

public Ref getLeaf()
Description copied from interface: Ref
Traverse target references until Ref.isSymbolic() is false.

If Ref.isSymbolic() is false, returns this.

If Ref.isSymbolic() is true, this method recursively traverses Ref.getTarget() until Ref.isSymbolic() returns false.

This method is effectively

 return isSymbolic() ? getTarget().getLeaf() : this;
 

Specified by:
getLeaf in interface Ref
Returns:
the reference that actually stores the ObjectId value.

getTarget

public Ref getTarget()
Description copied from interface: Ref
Get the reference this reference points to, or this.

If Ref.isSymbolic() is true this method returns the reference it directly names, which might not be the leaf reference, but could be another symbolic reference.

If this is a leaf level reference that contains its own ObjectId,this method returns this.

Specified by:
getTarget in interface Ref
Returns:
the target reference, or this.

getObjectId

public ObjectId getObjectId()
Description copied from interface: Ref
Cached value of this ref.

Specified by:
getObjectId in interface Ref
Returns:
the value of this ref at the last time we read it.

getStorage

public Ref.Storage getStorage()
Description copied from interface: Ref
How was this ref obtained?

The current storage model of a Ref may influence how the ref must be updated or deleted from the repository.

Specified by:
getStorage in interface Ref
Returns:
type of ref.

getPeeledObjectId

public ObjectId getPeeledObjectId()
Description copied from interface: Ref
Cached value of ref^{} (the ref peeled to commit).

Specified by:
getPeeledObjectId in interface Ref
Returns:
if this ref is an annotated tag the id of the commit (or tree or blob) that the annotated tag refers to; null if this ref does not refer to an annotated tag.

isPeeled

public boolean isPeeled()
Specified by:
isPeeled in interface Ref
Returns:
whether the Ref represents a peeled tag

toString

public String toString()
Overrides:
toString in class Object


Copyright © 2012. All Rights Reserved.