com.perforce.p4java.impl.generic.core
Class MapEntry

java.lang.Object
  extended by com.perforce.p4java.impl.generic.core.MapEntry
All Implemented Interfaces:
IMapEntry
Direct Known Subclasses:
BranchSpec.BranchViewMapping, ClientView.ClientViewMapping, Label.LabelMapping, ProtectionEntry, ReviewSubscription, Stream.StreamIgnoredMapping, Stream.StreamRemappedMapping, Stream.StreamViewMapping, TriggerEntry

public class MapEntry
extends Object
implements IMapEntry

Default implementation of the IMapEntry interface.


Nested Class Summary
 
Nested classes/interfaces inherited from interface com.perforce.p4java.core.IMapEntry
IMapEntry.EntryType
 
Field Summary
protected static Pattern elementPattern
           
protected static String elementPatternStr
           
protected  String left
           
protected  int order
           
protected  String right
           
protected  IMapEntry.EntryType type
           
 
Fields inherited from interface com.perforce.p4java.core.IMapEntry
EXCLUDE_PREFIX, ORDER_UNKNOWN, OVERLAY_PREFIX
 
Constructor Summary
MapEntry()
          Default constructor.
MapEntry(IMapEntry entry)
          Copy constructor.
MapEntry(int order, IMapEntry.EntryType type, String left, String right)
          Explicit-value constructor.
MapEntry(int order, String mappingStr)
          Attempts to construct a new MapEntry by parsing the passed-in string into type, left, and right components; assumes that the passed-in string is in the format specified by parseViewString (below).
MapEntry(int order, String left, String right)
          Construct a suitable MapEntry from the passed-in arguments, inferring the entry type from any suitable prefixes on the passed-in left string.
 
Method Summary
 String getLeft()
          Get the "left" entry for this mapping; equivalent to getLeft(false).
 String getLeft(boolean quoteBlanks)
          Get the "left" entry for this mapping.
 int getOrder()
          Get the order of this entry in the entry list, if known.
 String getRight()
          Get the "right" entry for this mapping; equivalent to getRight(false).
 String getRight(boolean quoteBlanks)
          Get the "right" entry for this mapping.
 IMapEntry.EntryType getType()
          Return the view map type of this entry.
static String[] parseViewMappingString(String str)
          Attempt to parse a string to get left and right view mapping elements out of it along with the optional EntryType spec on any left view strings.
protected static String quoteWhitespaceString(String str)
          Put double quotes around file path with whitespace.
 void setLeft(String left)
          Set the "left" entry for this mapping.
 void setOrder(int position)
          NOTE: does not affect actual order in the list on its own...
 void setRight(String right)
          Set the "right" entry for this mapping.
 void setType(IMapEntry.EntryType type)
          Set this entry's type.
static String stripTypePrefix(String str)
          Strip any Perforce entry type prefix from the passed-in string.
 String toString()
          An alias for this.toString(" ", true).
 String toString(String sepString, boolean quoteBlanks)
          Return a canonical String representation of this entry.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

elementPatternStr

protected static String elementPatternStr

elementPattern

protected static Pattern elementPattern

order

protected int order

type

protected IMapEntry.EntryType type

left

protected String left

right

protected String right
Constructor Detail

MapEntry

public MapEntry()
Default constructor. Sets all fields to null, and order to ORDER_UNKNOWN.


MapEntry

public MapEntry(int order,
                String left,
                String right)
Construct a suitable MapEntry from the passed-in arguments, inferring the entry type from any suitable prefixes on the passed-in left string. Left and right strings have any type prefixes stripped from them.


MapEntry

public MapEntry(int order,
                IMapEntry.EntryType type,
                String left,
                String right)
Explicit-value constructor. Left and right strings have any type prefixes stripped from them before being assigned to the new entry.


MapEntry

public MapEntry(int order,
                String mappingStr)
Attempts to construct a new MapEntry by parsing the passed-in string into type, left, and right components; assumes that the passed-in string is in the format specified by parseViewString (below). If the passed-in string is null, only the order field is set; the other fields are set to null or ORDER_UNKNOWN.


MapEntry

public MapEntry(IMapEntry entry)
Copy constructor. Constructs a new MapEntry from the passed-in version. If entry is null, this is equivalent to calling the default constructor.

Method Detail

getOrder

public int getOrder()
Description copied from interface: IMapEntry
Get the order of this entry in the entry list, if known. Returns ORDER_UNKNOWN if the order is unknown or this entry is not currently associated with a map.

Specified by:
getOrder in interface IMapEntry
Returns:
ORDER_UNKNOWN or current order.
See Also:
IMapEntry.getOrder()

setOrder

public void setOrder(int position)
NOTE: does not affect actual order in the list on its own...

Specified by:
setOrder in interface IMapEntry
Parameters:
position - new order
See Also:
IMapEntry.setOrder(int)

getType

public IMapEntry.EntryType getType()
Description copied from interface: IMapEntry
Return the view map type of this entry.

Specified by:
getType in interface IMapEntry
Returns:
possibly-null EntryType
See Also:
IMapEntry.getType()

setType

public void setType(IMapEntry.EntryType type)
Description copied from interface: IMapEntry
Set this entry's type.

Specified by:
setType in interface IMapEntry
Parameters:
type - new entry type. May be null.
See Also:
IMapEntry.setType(com.perforce.p4java.core.IMapEntry.EntryType)

getLeft

public String getLeft()
Description copied from interface: IMapEntry
Get the "left" entry for this mapping; equivalent to getLeft(false).

Specified by:
getLeft in interface IMapEntry
Returns:
possibly-null left mapping entry.
See Also:
IMapEntry.getLeft()

getLeft

public String getLeft(boolean quoteBlanks)
Description copied from interface: IMapEntry
Get the "left" entry for this mapping. Will not include any prefixes. If quoteBlanks is true and the left string contains spaces or tabs the entire string is returned surrounded by quote characters.

Specified by:
getLeft in interface IMapEntry
Parameters:
quoteBlanks - if true, and the left string contains spaces or tabs the entire string is returned surrounded by quote characters.
Returns:
possibly-null left mapping entry.
See Also:
IMapEntry.getLeft(boolean)

setLeft

public void setLeft(String left)
Description copied from interface: IMapEntry
Set the "left" entry for this mapping. Will strip off any exclude (etc.) prefix before assigning it.

Specified by:
setLeft in interface IMapEntry
Parameters:
left - possibly-null new left mapping entry
See Also:
IMapEntry.setLeft(java.lang.String)

getRight

public String getRight()
Description copied from interface: IMapEntry
Get the "right" entry for this mapping; equivalent to getRight(false).

Specified by:
getRight in interface IMapEntry
Returns:
possibly-null right mapping entry.
See Also:
IMapEntry.getRight()

getRight

public String getRight(boolean quoteBlanks)
Description copied from interface: IMapEntry
Get the "right" entry for this mapping. Will not include any prefixes. If quoteBlanks is true and the right string contains spaces or tabs the entire string is returned surrounded by quote characters.

Specified by:
getRight in interface IMapEntry
Parameters:
quoteBlanks - if true, and the right string contains spaces or tabs the entire string is returned surrounded by quote characters.
Returns:
possibly-null right mapping entry.
See Also:
IMapEntry.getRight(boolean)

setRight

public void setRight(String right)
Description copied from interface: IMapEntry
Set the "right" entry for this mapping. Will strip off any exclude (etc.) prefix before assigning it.

Specified by:
setRight in interface IMapEntry
Parameters:
right - possibly-null new right mapping entry
See Also:
IMapEntry.setRight(java.lang.String)

toString

public String toString(String sepString,
                       boolean quoteBlanks)
Description copied from interface: IMapEntry
Return a canonical String representation of this entry. This is in the form [type prefix]leftpath[specstring]rightpath, e.g. "-//depot/dev/test/... //clientname/newpath/..."

If the passed-in string is null, the left and right strings (if they exist) will be concatenated into one long separator-less string.

If the quoteBlanks parameter is true, if either or both the left or right entries contain spaces, the entries are quoted in full, i.e. the mapping //depot/test/space test 01/... //depot/test/space test 02/... becomes "//depot/test/space test 01/..." "//depot/test/space test 02/...".

Specified by:
toString in interface IMapEntry
See Also:
com.perforce.p4java.core.IMapEntry#toString(java.lang.String)

toString

public String toString()
An alias for this.toString(" ", true).

Specified by:
toString in interface IMapEntry
Overrides:
toString in class Object
See Also:
Object.toString()

stripTypePrefix

public static String stripTypePrefix(String str)
Strip any Perforce entry type prefix from the passed-in string. If the string is null, this returns null; if there's no such prefix, the original string is returned.


parseViewMappingString

public static String[] parseViewMappingString(String str)
Attempt to parse a string to get left and right view mapping elements out of it along with the optional EntryType spec on any left view strings.

The incoming string format is described semi-formally as follows:

 [whitespace] leftentry [whitespace rightentry] [whitespace]
 where leftentry = ([entrytype] non-whitespace-string) | (quote [entrytype] anystring quote)
 and rightentry = (non-whitespace-string) | (quote anystring quote)
 
Even less formally, if a left or right string has embedded spaces in it, it should be quoted with a double quote character; any left-entry entry type character must be within the quotes if they exist. The quotes are always stripped from the associated element before being returned.

The left string is returned as the first element of the returned array; the right (if it exists) is the second. Either or both can be null, but the array itself will never be null. The left string will still contain any entry type spec prepended (if it exists), and will need further processing to get the entry type (and or remove the entry type character).

Parameters:
if - not null, string to be parsed; if null, this method returns an empty (but not null) array
Returns:
non-null two-element string array; element 0 contains the left element, element 1 contains the right. Either or both can be null, but except in pathological cases, it's unusual for the left to be null and the right to be non-null.

quoteWhitespaceString

protected static String quoteWhitespaceString(String str)
Put double quotes around file path with whitespace. If quotes exist, don't quoted again.

Parameters:
str - with whitespace
Returns:
quoted str with whitespace


Copyright © 2015 Perforce Software. All Rights Reserved.