Class RefAdvertiser

    • Constructor Detail

      • RefAdvertiser

        public RefAdvertiser()
    • Method Detail

      • init

        public void init​(Repository src)
        Initialize this advertiser with a repository for peeling tags.
        Parameters:
        src - the repository to read from.
      • setUseProtocolV2

        public void setUseProtocolV2​(boolean b)
        Parameters:
        b - true if this advertiser should advertise using the protocol v2 format, false otherwise
        Since:
        5.0
      • setDerefTags

        public void setDerefTags​(boolean deref)
        Toggle tag peeling.

        This method must be invoked prior to any of the following:

        Parameters:
        deref - true to show the dereferenced value of a tag as the special ref $tag^{} ; false to omit it from the output.
      • advertiseCapability

        public void advertiseCapability​(String name)
        Add one protocol capability to the initial advertisement.

        This method must be invoked prior to any of the following:

        Parameters:
        name - the name of a single protocol capability supported by the caller. The set of capabilities are sent to the client in the advertisement, allowing the client to later selectively enable features it recognizes.
      • advertiseCapability

        public void advertiseCapability​(String name,
                                        String value)
        Add one protocol capability with a value ("name=value").
        Parameters:
        name - name of the capability.
        value - value. If null the capability will not be added.
        Since:
        4.0
      • addSymref

        public void addSymref​(String from,
                              String to)
        Add a symbolic ref to capabilities.

        This method must be invoked prior to any of the following:

        Parameters:
        from - The symbolic ref, e.g. "HEAD"
        to - The real ref it points to, e.g. "refs/heads/master"
        Since:
        3.6
      • send

        @Deprecated
        public Set<ObjectId> send​(Map<String,​Ref> refs)
                           throws IOException
        Deprecated.
        use send(Collection) instead.
        Format an advertisement for the supplied refs.
        Parameters:
        refs - zero or more refs to format for the client. The collection is sorted before display if necessary, and therefore may appear in any order.
        Returns:
        set of ObjectIds that were advertised to the client.
        Throws:
        IOException - the underlying output stream failed to write out an advertisement record.
      • send

        public Set<ObjectId> send​(Collection<Ref> refs)
                           throws IOException
        Format an advertisement for the supplied refs.
        Parameters:
        refs - zero or more refs to format for the client. The collection is sorted before display if necessary, and therefore may appear in any order.
        Returns:
        set of ObjectIds that were advertised to the client.
        Throws:
        IOException - the underlying output stream failed to write out an advertisement record.
        Since:
        5.0
      • advertiseHave

        public void advertiseHave​(AnyObjectId id)
                           throws IOException
        Advertise one object is available using the magic .have.

        The magic .have advertisement is not available for fetching by a client, but can be used by a client when considering a delta base candidate before transferring data in a push. Within the record created by this method the ref name is simply the invalid string .have.

        Parameters:
        id - identity of the object that is assumed to exist.
        Throws:
        IOException - the underlying output stream failed to write out an advertisement record.
      • isEmpty

        public boolean isEmpty()
        Whether no advertisements have been sent yet.
        Returns:
        true if no advertisements have been sent yet.
      • advertiseId

        public void advertiseId​(AnyObjectId id,
                                String refName)
                         throws IOException
        Advertise one object under a specific name.

        If the advertised object is a tag, this method does not advertise the peeled version of it.

        Parameters:
        id - the object to advertise.
        refName - name of the reference to advertise the object as, can be any string not including the NUL byte.
        Throws:
        IOException - the underlying output stream failed to write out an advertisement record.
      • writeOne

        protected abstract void writeOne​(CharSequence line)
                                  throws IOException
        Write a single advertisement line.
        Parameters:
        line - the advertisement line to be written. The line always ends with LF. Never null or the empty string.
        Throws:
        IOException - the underlying output stream failed to write out an advertisement record.
      • end

        protected abstract void end()
                             throws IOException
        Mark the end of the advertisements.
        Throws:
        IOException - the underlying output stream failed to write out an advertisement record.