org.jgroups

## Class MergeView

- java.lang.Object
- - org.jgroups.View
  - - org.jgroups.MergeView

All Implemented Interfaces:
  java.io.Externalizable, java.io.Serializable, java.lang.Cloneable, Streamable

    public class MergeView
    extends View

A view that is sent as a result of a merge. Whenever a group splits into subgroups, e.g., due to a network partition, and later the subgroups merge back together, a MergeView instead of a View will be received by the application. The MergeView class is a subclass of View and contains as additional instance variable: the list of views that were merged. For example, if the group denoted by view V1:(p,q,r,s,t) splits into subgroups V2:(p,q,r) and V2:(s,t), the merged view might be V3:(p,q,r,s,t). In this case the MergeView would contain a list of 2 views: V2:(p,q,r) and V2:(s,t).

See Also:
  Serialized Form

### Field Summary

Fields
`protected java.util.Vector<View>` `subgroups`

### Fields inherited from class org.jgroups.View

`members, payload, vid`

### Constructor Summary

Constructors
Constructor and Description
`MergeView()` Used by externalization
`MergeView(Address creator, long id, java.util.Vector<Address> members, java.util.Vector<View> subgroups)` Creates a new view
`MergeView(ViewId vid, java.util.Vector<Address> members, java.util.Vector<View> subgroups)` Creates a new view

### Method Summary

Methods
`java.lang.Object` `clone()` creates a copy of this view
`View` `copy()`
`java.util.Vector<View>` `getSubgroups()`
`void` `readExternal(java.io.ObjectInput in)`
`void` `readFrom(java.io.DataInputStream in)` Read the state of the current object (including superclasses) from instream Note that the input stream must not be closed
`int` `serializedSize()`
`java.lang.String` `toString()`
`void` `writeExternal(java.io.ObjectOutput out)`
`void` `writeTo(java.io.DataOutputStream out)` Write the entire state of the current object (including superclasses) to outstream.

### Methods inherited from class org.jgroups.View

`addPayload, containsMember, equals, getCreator, getMembers, getPayload, getVid, getViewId, hashCode, printDetails, removePayload, size`

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

`finalize, getClass, notify, notifyAll, wait, wait, wait`

### Field Detail

#### subgroups

    protected java.util.Vector<View> subgroups

### Constructor Detail

#### MergeView

    public MergeView()

Used by externalization

#### MergeView

    public MergeView(ViewId vid,
             java.util.Vector<Address> members,
             java.util.Vector<View> subgroups)

Creates a new view

Parameters:
  `vid` - The view id of this view (can not be null)
  `members` - Contains a list of all the members in the view, can be empty but not null.
  `subgroups` - A list of Views representing the former subgroups

#### MergeView

    public MergeView(Address creator,
             long id,
             java.util.Vector<Address> members,
             java.util.Vector<View> subgroups)

Creates a new view

Parameters:
  `creator` - The creator of this view (can not be null)
  `id` - The lamport timestamp of this view
  `members` - Contains a list of all the members in the view, can be empty but not null.
  `subgroups` - A list of Views representing the former subgroups

### Method Detail

#### getSubgroups

    public java.util.Vector<View> getSubgroups()

#### clone

    public java.lang.Object clone()

creates a copy of this view

Overrides:
  `clone` in class `View`
Returns:
  a copy of this view

#### copy

    public View copy()

Overrides:
  `copy` in class `View`

#### toString

    public java.lang.String toString()

Overrides:
  `toString` in class `View`

#### writeExternal

    public void writeExternal(java.io.ObjectOutput out)
                       throws java.io.IOException

Specified by:
  `writeExternal` in interface `java.io.Externalizable`
Overrides:
  `writeExternal` in class `View`
Throws:
  `java.io.IOException`

#### readExternal

    public void readExternal(java.io.ObjectInput in)
                      throws java.io.IOException,
                             java.lang.ClassNotFoundException

Specified by:
  `readExternal` in interface `java.io.Externalizable`
Overrides:
  `readExternal` in class `View`
Throws:
  `java.io.IOException`
  `java.lang.ClassNotFoundException`

#### writeTo

    public void writeTo(java.io.DataOutputStream out)
                 throws java.io.IOException

Description copied from interface: `Streamable`
Write the entire state of the current object (including superclasses) to outstream. Note that the output stream must not be closed

Specified by:
  `writeTo` in interface `Streamable`
Overrides:
  `writeTo` in class `View`
Throws:
  `java.io.IOException`

#### readFrom

    public void readFrom(java.io.DataInputStream in)
                  throws java.io.IOException,
                         java.lang.IllegalAccessException,
                         java.lang.InstantiationException

Description copied from interface: `Streamable`
Read the state of the current object (including superclasses) from instream Note that the input stream must not be closed

Specified by:
  `readFrom` in interface `Streamable`
Overrides:
  `readFrom` in class `View`
Throws:
  `java.io.IOException`
  `java.lang.IllegalAccessException`
  `java.lang.InstantiationException`

#### serializedSize

    public int serializedSize()

Overrides:
  `serializedSize` in class `View`