109 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			109 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
|  | using System; | |||
|  | 
 | |||
|  | namespace Unity.PlasticSCM.Editor.AssetsOverlays | |||
|  | { | |||
|  |     [Flags] | |||
|  |     internal enum AssetStatus | |||
|  |     { | |||
|  |         None            = 0, | |||
|  |         Private         = 1 << 0, | |||
|  |         Ignored         = 1 << 2, | |||
|  |         Added           = 1 << 3, | |||
|  |         Checkout        = 1 << 4, | |||
|  |         Controlled      = 1 << 5, | |||
|  |         UpToDate        = 1 << 6, | |||
|  |         OutOfDate       = 1 << 7, | |||
|  |         Conflicted      = 1 << 8, | |||
|  |         DeletedOnServer = 1 << 9, | |||
|  |         Locked          = 1 << 10, | |||
|  |         LockedRemote    = 1 << 11, | |||
|  |         Retained  = 1 << 12, | |||
|  |         HiddenChanged   = 1 << 13, | |||
|  |     } | |||
|  | 
 | |||
|  |     internal class LockStatusData | |||
|  |     { | |||
|  |         internal readonly AssetStatus Status; | |||
|  |         internal readonly string LockedBy; | |||
|  |         internal readonly string HolderBranchName; | |||
|  | 
 | |||
|  |         internal LockStatusData( | |||
|  |             AssetStatus status, | |||
|  |             string lockedBy, | |||
|  |             string holderBranchName) | |||
|  |         { | |||
|  |             Status = status; | |||
|  |             LockedBy = lockedBy; | |||
|  |             HolderBranchName = holderBranchName; | |||
|  |         } | |||
|  |     } | |||
|  | 
 | |||
|  |     internal class ClassifyAssetStatus | |||
|  |     { | |||
|  |         internal static bool IsPrivate(AssetStatus status) | |||
|  |         { | |||
|  |             return ContainsAny(status, AssetStatus.Private); | |||
|  |         } | |||
|  | 
 | |||
|  |         internal static bool IsIgnored(AssetStatus status) | |||
|  |         { | |||
|  |             return ContainsAny(status, AssetStatus.Ignored); | |||
|  |         } | |||
|  | 
 | |||
|  |         internal static bool IsControlled(AssetStatus status) | |||
|  |         { | |||
|  |             return ContainsAny(status, AssetStatus.Controlled); | |||
|  |         } | |||
|  | 
 | |||
|  |         internal static bool IsLocked(AssetStatus status) | |||
|  |         { | |||
|  |             return ContainsAny(status, AssetStatus.Locked); | |||
|  |         } | |||
|  | 
 | |||
|  |         internal static bool IsLockedRemote(AssetStatus status) | |||
|  |         { | |||
|  |             return ContainsAny(status, AssetStatus.LockedRemote); | |||
|  |         } | |||
|  | 
 | |||
|  |         internal static bool IsRetained(AssetStatus status) | |||
|  |         { | |||
|  |             return ContainsAny(status, AssetStatus.Retained); | |||
|  |         }         | |||
|  |          | |||
|  |         internal static bool IsOutOfDate(AssetStatus status) | |||
|  |         { | |||
|  |             return ContainsAny(status, AssetStatus.OutOfDate); | |||
|  |         } | |||
|  | 
 | |||
|  |         internal static bool IsDeletedOnServer(AssetStatus status) | |||
|  |         { | |||
|  |             return ContainsAny(status, AssetStatus.DeletedOnServer); | |||
|  |         } | |||
|  | 
 | |||
|  |         internal static bool IsConflicted(AssetStatus status) | |||
|  |         { | |||
|  |             return ContainsAny(status, AssetStatus.Conflicted); | |||
|  |         } | |||
|  | 
 | |||
|  |         internal static bool IsAdded(AssetStatus status) | |||
|  |         { | |||
|  |             return ContainsAny(status, AssetStatus.Added); | |||
|  |         } | |||
|  | 
 | |||
|  |         internal static bool IsCheckedOut(AssetStatus status) | |||
|  |         { | |||
|  |             return ContainsAny(status, AssetStatus.Checkout); | |||
|  |         } | |||
|  | 
 | |||
|  |         internal static bool IsHiddenChanged(AssetStatus status) | |||
|  |         { | |||
|  |             return ContainsAny(status, AssetStatus.HiddenChanged); | |||
|  |         } | |||
|  | 
 | |||
|  |         static bool ContainsAny(AssetStatus status, AssetStatus matchTo) | |||
|  |         { | |||
|  |             return (status & matchTo) != AssetStatus.None; | |||
|  |         } | |||
|  |     } | |||
|  | } |