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
`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
`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