Class ObjectIdRef

    • Constructor Detail

      • ObjectIdRef

        protected ObjectIdRef​(Ref.Storage st,
                              java.lang.String name,
                              ObjectId id)
        Create a new ref pairing.
        Parameters:
        st - method used to store this ref.
        name - name of this ref.
        id - current value of the ref. May be null to indicate a ref that does not exist yet.
    • Method Detail

      • getName

        public java.lang.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.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object