Class MapEntry
- java.lang.Object
-
- com.perforce.p4java.impl.generic.core.MapEntry
-
- All Implemented Interfaces:
IMapEntry
- Direct Known Subclasses:
BranchSpec.BranchViewMapping,ClientView.ClientViewMapping,Label.LabelMapping,ProtectionEntry,ReviewSubscription,Stream.StreamComponentMapping,Stream.StreamIgnoredMapping,Stream.StreamRemappedMapping,Stream.StreamViewMapping,TriggerEntry
public class MapEntry extends java.lang.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
Fields Modifier and Type Field Description protected java.lang.Stringcommentprotected static java.util.regex.PatternelementPatternprotected static java.lang.StringelementPatternStrprotected java.lang.Stringleftprotected intorderprotected java.lang.Stringrightprotected IMapEntry.EntryTypetype-
Fields inherited from interface com.perforce.p4java.core.IMapEntry
ORDER_UNKNOWN
-
-
Constructor Summary
Constructors Constructor Description MapEntry()Default constructor.MapEntry(int order, IMapEntry.EntryType type, java.lang.String left, java.lang.String right)Explicit-value constructor.MapEntry(int order, java.lang.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, java.lang.String left, java.lang.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.MapEntry(IMapEntry entry)Copy constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.StringgetComment()Get the "comment" entry for this mapping; equivalent to getComment(false).java.lang.StringgetComment(boolean quoteBlanks)Get the "comment" entry for this mapping.java.lang.StringgetLeft()Get the "left" entry for this mapping; equivalent to getLeft(false).java.lang.StringgetLeft(boolean quoteBlanks)Get the "left" entry for this mapping.intgetOrder()Get the order of this entry in the entry list, if known.java.lang.StringgetRight()Get the "right" entry for this mapping; equivalent to getRight(false).java.lang.StringgetRight(boolean quoteBlanks)Get the "right" entry for this mapping.IMapEntry.EntryTypegetType()Return the view map type of this entry.static java.lang.StringparseComments(java.lang.String str)static java.lang.String[]parseViewMappingString(java.lang.String rawStr)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 java.lang.StringquoteWhitespaceString(java.lang.String str)Put double quotes around file path with whitespace.voidsetComment(java.lang.String comment)Set the "comment" entry for this mapping.voidsetLeft(java.lang.String left)Set the "left" entry for this mapping.voidsetOrder(int position)NOTE: does not affect actual order in the list on its own...voidsetRight(java.lang.String right)Set the "right" entry for this mapping.voidsetType(IMapEntry.EntryType type)Set this entry's type.static java.lang.StringstripComments(java.lang.String str)static java.lang.StringstripTypePrefix(java.lang.String str)Strip any Perforce entry type prefix from the passed-in string.java.lang.StringtoString()An alias for this.toString(" ", true).java.lang.StringtoString(java.lang.String sepString, boolean quoteBlanks)Return a canonical String representation of this entry.
-
-
-
Field Detail
-
elementPatternStr
protected static java.lang.String elementPatternStr
-
elementPattern
protected static java.util.regex.Pattern elementPattern
-
order
protected int order
-
type
protected IMapEntry.EntryType type
-
left
protected java.lang.String left
-
right
protected java.lang.String right
-
comment
protected java.lang.String comment
-
-
Constructor Detail
-
MapEntry
public MapEntry()
Default constructor. Sets all fields to null, and order to ORDER_UNKNOWN.
-
MapEntry
public MapEntry(int order, java.lang.String left, java.lang.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.- Parameters:
order- orderleft- left mappingright- right mapping
-
MapEntry
public MapEntry(int order, IMapEntry.EntryType type, java.lang.String left, java.lang.String right)Explicit-value constructor. Left and right strings have any type prefixes stripped from them before being assigned to the new entry.- Parameters:
order- ordertype- typeleft- left mappingright- right mapping
-
MapEntry
public MapEntry(int order, java.lang.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.- Parameters:
order- ordermappingStr- mapping
-
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.- Parameters:
entry- map entry
-
-
Method Detail
-
getOrder
public int getOrder()
Description copied from interface:IMapEntryGet 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:
getOrderin interfaceIMapEntry- 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:
setOrderin interfaceIMapEntry- Parameters:
position- new order- See Also:
IMapEntry.setOrder(int)
-
getType
public IMapEntry.EntryType getType()
Description copied from interface:IMapEntryReturn the view map type of this entry.- Specified by:
getTypein interfaceIMapEntry- Returns:
- possibly-null EntryType
- See Also:
IMapEntry.getType()
-
setType
public void setType(IMapEntry.EntryType type)
Description copied from interface:IMapEntrySet this entry's type.- Specified by:
setTypein interfaceIMapEntry- Parameters:
type- new entry type. May be null.- See Also:
IMapEntry.setType(com.perforce.p4java.core.IMapEntry.EntryType)
-
getLeft
public java.lang.String getLeft()
Description copied from interface:IMapEntryGet the "left" entry for this mapping; equivalent to getLeft(false).- Specified by:
getLeftin interfaceIMapEntry- Returns:
- possibly-null left mapping entry.
- See Also:
IMapEntry.getLeft()
-
getLeft
public java.lang.String getLeft(boolean quoteBlanks)
Description copied from interface:IMapEntryGet 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:
getLeftin interfaceIMapEntry- 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(java.lang.String left)
Description copied from interface:IMapEntrySet the "left" entry for this mapping. Will strip off any exclude (etc.) prefix before assigning it.- Specified by:
setLeftin interfaceIMapEntry- Parameters:
left- possibly-null new left mapping entry- See Also:
IMapEntry.setLeft(java.lang.String)
-
getRight
public java.lang.String getRight()
Description copied from interface:IMapEntryGet the "right" entry for this mapping; equivalent to getRight(false).- Specified by:
getRightin interfaceIMapEntry- Returns:
- possibly-null right mapping entry.
- See Also:
IMapEntry.getRight()
-
getRight
public java.lang.String getRight(boolean quoteBlanks)
Description copied from interface:IMapEntryGet 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:
getRightin interfaceIMapEntry- 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(java.lang.String right)
Description copied from interface:IMapEntrySet the "right" entry for this mapping. Will strip off any exclude (etc.) prefix before assigning it.- Specified by:
setRightin interfaceIMapEntry- Parameters:
right- possibly-null new right mapping entry- See Also:
IMapEntry.setRight(java.lang.String)
-
getComment
public java.lang.String getComment()
Description copied from interface:IMapEntryGet the "comment" entry for this mapping; equivalent to getComment(false).- Specified by:
getCommentin interfaceIMapEntry- Returns:
- possibly-null comment mapping entry.
- See Also:
IMapEntry.getComment()
-
getComment
public java.lang.String getComment(boolean quoteBlanks)
Description copied from interface:IMapEntryGet the "comment" entry for this mapping. Will not include any prefixes. If quoteBlanks is true and the comment string contains spaces or tabs the entire string is returned surrounded by quote characters.- Specified by:
getCommentin interfaceIMapEntry- Parameters:
quoteBlanks- if true, and the comment string contains spaces or tabs the entire string is returned surrounded by quote characters.- Returns:
- possibly-null comment mapping entry.
- See Also:
IMapEntry.getComment(boolean)
-
setComment
public void setComment(java.lang.String comment)
Description copied from interface:IMapEntrySet the "comment" entry for this mapping. Will strip off any exclude (etc.) prefix before assigning it.- Specified by:
setCommentin interfaceIMapEntry- Parameters:
comment- possibly-null new comment mapping entry- See Also:
IMapEntry.setComment(java.lang.String)
-
toString
public java.lang.String toString(java.lang.String sepString, boolean quoteBlanks)Description copied from interface:IMapEntryReturn 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:
toStringin interfaceIMapEntry- Parameters:
sepString- separator stringquoteBlanks- quotes if spaces are used- Returns:
- formatted string
- See Also:
IMapEntry.toString(String, boolean)
-
toString
public java.lang.String toString()
An alias for this.toString(" ", true).
-
stripTypePrefix
public static java.lang.String stripTypePrefix(java.lang.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.- Parameters:
str- prefix- Returns:
- formatted string
-
parseComments
public static java.lang.String parseComments(java.lang.String str)
-
stripComments
public static java.lang.String stripComments(java.lang.String str)
-
parseViewMappingString
public static java.lang.String[] parseViewMappingString(java.lang.String rawStr)
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:
rawStr- 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 java.lang.String quoteWhitespaceString(java.lang.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
-
-