using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Perforce.P4 { /// /// A versioned object that describes an individual file in a Perforce repository. /// public class File : FileSpec { public int ChangeId; public FileAction Action; public FileType Type; public DateTime SubmitTime; public Revision HaveRev; public string User; public string Client; public File() { } public File( DepotPath depotPath, ClientPath clientPath, Revision rev, Revision haveRev, int change, FileAction action, FileType type, DateTime submittime, string user, string client) : base(depotPath, clientPath, null, rev) { ChangeId = change; Action = action; Type = type; SubmitTime = submittime; HaveRev = haveRev; User = user; Client = client; } public void ParseFilesCmdTaggedData(TaggedObject obj) { if (obj.ContainsKey("depotFile")) { base.DepotPath = new DepotPath(obj["depotFile"]); } if (obj.ContainsKey("clientFile")) { base.ClientPath = new ClientPath(obj["clientFile"]); } if (obj.ContainsKey("rev")) { int rev = -1; int.TryParse(obj["rev"], out rev); base.Version = new Revision(rev); } if (obj.ContainsKey("haveRev")) { int rev = -1; int.TryParse(obj["haveRev"], out rev); HaveRev = new Revision(rev); } if (obj.ContainsKey("change")) { int change = -1; int.TryParse(obj["change"], out change); ChangeId = change; } if (obj.ContainsKey("action")) { StringEnum Action = obj["action"]; } if (obj.ContainsKey("type")) { Type = new FileType(obj["type"]); } if (obj.ContainsKey("time")) { SubmitTime = FormBase.ConvertUnixTime(obj["time"]); } if (obj.ContainsKey("user")) { User = obj["user"]; } if (obj.ContainsKey("client")) { Client = obj["client"]; } } public static File FromFilesCmdTaggedData(TaggedObject obj) { File val = new File(); val.ParseFilesCmdTaggedData(obj); return val; } public override string ToString() { return base.ToString(); } } }