Package org.eclipse.jgit.transport
Class RefAdvertiser
- java.lang.Object
-
- org.eclipse.jgit.transport.RefAdvertiser
-
- Direct Known Subclasses:
RefAdvertiser.PacketLineOutRefAdvertiser
public abstract class RefAdvertiser extends java.lang.Object
Support for the start ofUploadPack
andReceivePack
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
RefAdvertiser.PacketLineOutRefAdvertiser
Advertiser which frames lines in aPacketLineOut
format.
-
Constructor Summary
Constructors Constructor Description RefAdvertiser()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
addSymref(java.lang.String from, java.lang.String to)
Add a symbolic ref to capabilities.void
advertiseCapability(java.lang.String name)
Add one protocol capability to the initial advertisement.void
advertiseHave(AnyObjectId id)
Advertise one object is available using the magic.have
.void
advertiseId(AnyObjectId id, java.lang.String refName)
Advertise one object under a specific name.protected abstract void
end()
Mark the end of the advertisements.void
init(Repository src)
Initialize this advertiser with a repository for peeling tags.boolean
isEmpty()
java.util.Set<ObjectId>
send(java.util.Map<java.lang.String,Ref> refs)
Format an advertisement for the supplied refs.void
setDerefTags(boolean deref)
Toggle tag peeling.protected abstract void
writeOne(java.lang.CharSequence line)
Write a single advertisement line.
-
-
-
Method Detail
-
init
public void init(Repository src)
Initialize this advertiser with a repository for peeling tags.- Parameters:
src
- the repository to read from.
-
setDerefTags
public void setDerefTags(boolean deref)
- 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(java.lang.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.
-
addSymref
public void addSymref(java.lang.String from, java.lang.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
public java.util.Set<ObjectId> send(java.util.Map<java.lang.String,Ref> refs) throws java.io.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:
java.io.IOException
- the underlying output stream failed to write out an advertisement record.
-
advertiseHave
public void advertiseHave(AnyObjectId id) throws java.io.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:
java.io.IOException
- the underlying output stream failed to write out an advertisement record.
-
isEmpty
public boolean isEmpty()
- Returns:
- true if no advertisements have been sent yet.
-
advertiseId
public void advertiseId(AnyObjectId id, java.lang.String refName) throws java.io.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:
java.io.IOException
- the underlying output stream failed to write out an advertisement record.
-
writeOne
protected abstract void writeOne(java.lang.CharSequence line) throws java.io.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:
java.io.IOException
- the underlying output stream failed to write out an advertisement record.
-
end
protected abstract void end() throws java.io.IOException
Mark the end of the advertisements.- Throws:
java.io.IOException
- the underlying output stream failed to write out an advertisement record.
-
-