Class ObjectBuilder

java.lang.Object
org.eclipse.jgit.lib.ObjectBuilder
Direct Known Subclasses:
CommitBuilder, TagBuilder

public abstract class ObjectBuilder extends Object
Common base class for CommitBuilder and TagBuilder.
Since:
5.11
  • Field Details

    • hencoding

      private static final byte[] hencoding
      Byte representation of "encoding".
    • author

      private PersonIdent author
    • gpgSignature

      private GpgSignature gpgSignature
    • message

      private String message
    • encoding

      private Charset encoding
  • Constructor Details

    • ObjectBuilder

      public ObjectBuilder()
  • Method Details

    • getAuthor

      protected PersonIdent getAuthor()
      Retrieves the author of this object.
      Returns:
      the author of this object, or null if not set yet
    • setAuthor

      protected void setAuthor(PersonIdent newAuthor)
      Sets the author (name, email address, and date) of this object.
      Parameters:
      newAuthor - the new author, must be non-null
    • setGpgSignature

      public void setGpgSignature(@Nullable GpgSignature gpgSignature)
      Sets the GPG signature of this object.

      Note, the signature set here will change the payload of the object, i.e. the output of build() will include the signature. Thus, the typical flow will be:

      1. call build() without a signature set to obtain payload
      2. create GpgSignature from payload
      3. set GpgSignature

      Parameters:
      gpgSignature - the signature to set or null to unset
      Since:
      5.3
    • getGpgSignature

      @Nullable public GpgSignature getGpgSignature()
      Retrieves the GPG signature of this object.
      Returns:
      the GPG signature of this object, or null if the object is not signed
      Since:
      5.3
    • getMessage

      @Nullable public String getMessage()
      Retrieves the complete message of the object.
      Returns:
      the complete message; can be null.
    • setMessage

      public void setMessage(@Nullable String message)
      Sets the message (commit message, or message of an annotated tag).
      Parameters:
      message - the message.
    • getEncoding

      @NonNull public Charset getEncoding()
      Retrieves the encoding that should be used for the message text.
      Returns:
      the encoding that should be used for the message text.
    • setEncoding

      public void setEncoding(@NonNull Charset encoding)
      Sets the encoding for the object message.
      Parameters:
      encoding - the encoding to use.
    • build

      @NonNull public abstract byte[] build() throws UnsupportedEncodingException
      Format this builder's state as a git object.
      Returns:
      this object in the canonical git format, suitable for storage in a repository.
      Throws:
      UnsupportedEncodingException - the encoding specified by getEncoding() is not supported by this Java runtime.
    • writeMultiLineHeader

      static void writeMultiLineHeader(@NonNull String in, @NonNull OutputStream out, boolean enforceAscii) throws IOException, IllegalArgumentException
      Writes signature to output as per gpgsig header.

      CRLF and CR will be sanitized to LF and signature will have a hanging indent of one space starting with line two. A trailing line break is not written; the caller is supposed to terminate the GPG signature header by writing a single newline.

      Parameters:
      in - signature string with line breaks
      out - output stream
      enforceAscii - whether to throw IllegalArgumentException if non-ASCII characters are encountered
      Throws:
      IOException - thrown by the output stream
      IllegalArgumentException - if the signature string contains non 7-bit ASCII chars and enforceAscii == true
    • writeEncoding

      static void writeEncoding(@NonNull Charset encoding, @NonNull OutputStream out) throws IOException
      Writes an "encoding" header.
      Parameters:
      encoding - to write
      out - to write to
      Throws:
      IOException - if writing fails