com.perforce.p4java.core
Class ViewMap<E extends IMapEntry>

java.lang.Object
  extended by com.perforce.p4java.core.ViewMap<E>
All Implemented Interfaces:
Iterable<E>
Direct Known Subclasses:
ClientView

public class ViewMap<E extends IMapEntry>
extends Object
implements Iterable<E>

Defines the common operations to Perforce view maps. View maps are normally used in Perforce clients, labels, branches, etc., to map one type of path (a depot path, for example) to a different type of path (e.g. a client path).

View maps work in a manner that's described in the main Perforce documentation for the basic client view, but in summary, map entries can be inclusive, exclusive, or overlays, and map entry order is (of course) deeply significant.

This implementation of view maps does not (yet) include advanced Perforce functionality (such as translation or testing the map to see whether a path is mapped or not), but future versions will; the emphasis here is on setting up a common basis for P4Java view maps.


Field Summary
protected  List<E> entryList
           
 
Constructor Summary
ViewMap()
          Default constructor.
ViewMap(List<E> entryList)
          Constructs a new ViewMap from the passed-in entry list.
 
Method Summary
 void addEntry(E entry)
          Add a map new entry at the end of the view map.
 void checkEntryList(List<E> entryList)
          Do some sanity checks on the passed-in entry list.
 void deleteEntry(int position)
          Delete the entry at the specified position.
 E getEntry(int position)
          Get the map entry at the specified position.
 List<E> getEntryList()
          Get the entry list associated with this view map.
 int getSize()
          Return the number of elements in the associated entry list.
 Iterator<E> iterator()
           
 void setEntry(int position, E entry)
          Set (replace) a specific map position.
 void setEntryList(List<E> entryList)
          Set the entry list associated with this view map.
protected  void updateEntryListPositions()
          Update the entry list entry positions after an update by reassigning entry-internal positions as appropriate.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

entryList

protected List<E extends IMapEntry> entryList
Constructor Detail

ViewMap

public ViewMap()
Default constructor. Creates a new ViewMap with an empty (but not null) entry list.


ViewMap

public ViewMap(List<E> entryList)
Constructs a new ViewMap from the passed-in entry list. The passed-in list is inspected for consistency before being used.

Parameters:
entryList - non-null (but possibly-empty) entry list.
Method Detail

getSize

public int getSize()
Return the number of elements in the associated entry list.


deleteEntry

public void deleteEntry(int position)
Delete the entry at the specified position. Will throw a P4JavaError if order is out of bounds. The order field of the deleted entry will be set to ORDER_UNKNOWN; the order fields of any entries "below" the deletion will be updated with their new order.

Parameters:
position - order of entry to be deleted

getEntry

public E getEntry(int position)
Get the map entry at the specified position. Will throw a P4JavaError if order is out of bounds.

Parameters:
position - list position to use

getEntryList

public List<E> getEntryList()
Get the entry list associated with this view map.

Returns:
non-null entry list

addEntry

public void addEntry(E entry)
Add a map new entry at the end of the view map. The value of the entry's order field will be set to the order in the entry list.

Parameters:
entry - non-null map entry.

setEntry

public void setEntry(int position,
                     E entry)
Set (replace) a specific map position.

Will throw a P4JavaError if order is out of bounds or if the new entry is null. The value of the entry's order field will be set to the order in the entry list; the value of the replaced entry's order field will be set to ORDER_UNKNOWN.

Parameters:
position - list order of replacement
entry - non-null replacement entry

setEntryList

public void setEntryList(List<E> entryList)
Set the entry list associated with this view map.

Parameters:
entryList - non-null entry list

checkEntryList

public void checkEntryList(List<E> entryList)
Do some sanity checks on the passed-in entry list. This includes checking for null list, null entries, and whether each entry's order field matches its actual order in the list. Throws NullPointerError or P4JavaError as appropriate.


updateEntryListPositions

protected void updateEntryListPositions()
Update the entry list entry positions after an update by reassigning entry-internal positions as appropriate.


iterator

public Iterator<E> iterator()
Specified by:
iterator in interface Iterable<E extends IMapEntry>
See Also:
Iterable.iterator()


Copyright © 2015 Perforce Software. All Rights Reserved.