org.tmatesoft.svn.core.io.diff

## Class SVNDiffInstruction

- java.lang.Object
- - org.tmatesoft.svn.core.io.diff.SVNDiffInstruction

-     public class SVNDiffInstruction
      extends java.lang.Object

  The SVNDiffInstruction class represents instructions used as delta applying rules.

  For now there are three types of copy instructions:

  - `COPY_FROM_SOURCE`: that is when bytes are copied from a source view (for example, existing revision of a file) to the target one.
  - `COPY_FROM_NEW_DATA`: new data bytes (e.g. new text) are copied to the target view.
  - `COPY_FROM_TARGET`: that is, when a sequence of bytes in the target must be repeated.
  These are three different ways how full text representation bytes are obtained.
  Since:
    1.2
  Version:
    1.3
  Author:
    TMate Software Ltd.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `COPY_FROM_NEW_DATA` A type of an instruction that says that data must be copied from the new data to the target view.
    `static int` | `COPY_FROM_SOURCE` A type of an instruction that says that data must be copied from the source view to the target one.
    `static int` | `COPY_FROM_TARGET` A type of an instruction that says that data must be copied from the target view to the target itself.
    `int` | `length` A length bytes to copy.
    `int` | `offset` An offset in the source from where the bytes should be copied.
    `int` | `type` A type of this instruction.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SVNDiffInstruction()` Creates a new instruction object.
    `SVNDiffInstruction(int t, int l, int o)` Creates a particular type of a diff instruction.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `toString()` Gives a string representation of this object.
    `static void` | `writeInt(java.nio.ByteBuffer os, int i)` Writes an integer to a byte buffer.
    `static void` | `writeLong(java.nio.ByteBuffer os, long i)` Writes a long to a byte buffer.
    `void` | `writeTo(java.nio.ByteBuffer target)` Wirtes this instruction to a byte buffer.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### COPY_FROM_SOURCE

          public static final int COPY_FROM_SOURCE

      A type of an instruction that says that data must be copied from the source view to the target one.
      See Also:
        Constant Field Values

    - #### COPY_FROM_TARGET

          public static final int COPY_FROM_TARGET

      A type of an instruction that says that data must be copied from the target view to the target itself.
      See Also:
        Constant Field Values

    - #### COPY_FROM_NEW_DATA

          public static final int COPY_FROM_NEW_DATA

      A type of an instruction that says that data must be copied from the new data to the target view.
      See Also:
        Constant Field Values

    - #### type

          public int type

      A type of this instruction.

    - #### length

          public int length

      A length bytes to copy.

    - #### offset

          public int offset

      An offset in the source from where the bytes should be copied. Instruction offsets are relative to the bounds of views, i.e. a source/target view is a window of bytes (specified in a concrete diff window) in the source/target stream (this can be a file, a buffer).

  - ### Constructor Detail

    - #### SVNDiffInstruction

          public SVNDiffInstruction(int t,
                            int l,
                            int o)

      Creates a particular type of a diff instruction. Instruction offsets are relative to the bounds of views, i.e. a source/target view is a window of bytes (specified in a concrete diff window) in the source/target stream (this can be a file, a buffer).
      Parameters:
        `t` - a type of an instruction
        `l` - a number of bytes to copy
        `o` - an offset in the source (which may be a source or a target view, or a new data stream) from where the bytes are to be copied
      See Also:
        `SVNDiffWindow`

    - #### SVNDiffInstruction

          public SVNDiffInstruction()

      Creates a new instruction object. It's the instruction for the empty contents file.

  - ### Method Detail

    - #### toString

          public java.lang.String toString()

      Gives a string representation of this object.
      Overrides:
        `toString` in class `java.lang.Object`
      Returns:
        a string representation of this object

    - #### writeTo

          public void writeTo(java.nio.ByteBuffer target)

      Wirtes this instruction to a byte buffer.
      Parameters:
        `target` - a byte buffer to write to

    - #### writeInt

          public static void writeInt(java.nio.ByteBuffer os,
                      int i)

      Writes an integer to a byte buffer.
      Parameters:
        `os` - a byte buffer to write to
        `i` - an integer to write

    - #### writeLong

          public static void writeLong(java.nio.ByteBuffer os,
                       long i)

      Writes a long to a byte buffer.
      Parameters:
        `os` - a byte buffer to write to
        `i` - a long number to write