1 package org.apache.maven.scm.provider.tfs.command.blame;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.scm.command.blame.BlameLine;
23 import org.apache.maven.scm.log.ScmLogger;
24 import org.apache.maven.scm.util.AbstractConsumer;
25
26 import java.util.ArrayList;
27 import java.util.Date;
28 import java.util.List;
29 import java.util.regex.Matcher;
30 import java.util.regex.Pattern;
31
32
33
34
35
36 public class TfsBlameConsumer
37 extends AbstractConsumer
38 {
39 private static final String TFS_TIMESTAMP_PATTERN = "MM/dd/yyyy";
40
41
42
43
44 private static final Pattern LINE_PATTERN = Pattern.compile( "([^ ]+)[ ]+([^ ]+)[ ]+([^ ]+)" );
45
46 private List<BlameLine> lines = new ArrayList<BlameLine>();
47
48 public TfsBlameConsumer( ScmLogger logger )
49 {
50 super( logger );
51 }
52
53 public void consumeLine( String line )
54 {
55 Matcher matcher = LINE_PATTERN.matcher( line );
56 if ( matcher.find() )
57 {
58 String revision = matcher.group( 1 ).trim();
59 String author = matcher.group( 2 ).trim();
60 String dateStr = matcher.group( 3 ).trim();
61
62 Date date = parseDate( dateStr, null, TFS_TIMESTAMP_PATTERN );
63
64 lines.add( new BlameLine( date, revision, author ) );
65 }
66 }
67
68 public List<BlameLine> getLines()
69 {
70 return lines;
71 }
72 }