1 package org.apache.maven.scm.provider.tfs.command.consumer;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.File;
23 import java.util.ArrayList;
24 import java.util.List;
25
26 import org.apache.maven.scm.ScmFile;
27 import org.apache.maven.scm.ScmFileStatus;
28 import org.codehaus.plexus.util.cli.StreamConsumer;
29
30
31
32
33 public class FileListConsumer
34 implements StreamConsumer
35 {
36
37 private boolean fed = false;
38
39 protected String currentDir = "";
40
41 private List<ScmFile> files = new ArrayList<ScmFile>();
42
43 public void consumeLine( String line )
44 {
45 fed = true;
46 if ( line.endsWith( ":" ) )
47 {
48 currentDir = line.substring( 0, line.lastIndexOf( ':' ) );
49 ScmFile scmFile = new ScmFile( currentDir, ScmFileStatus.CHECKED_OUT );
50 if ( !files.contains( scmFile ) )
51 {
52 files.add( scmFile );
53 }
54 }
55 else if ( line.trim().equals( "" ) )
56 {
57 currentDir = "";
58 }
59 else if ( !currentDir.equals( "" ) && line.indexOf( ' ' ) >= 0 )
60 {
61 String filename = line.split( " " )[1];
62 files.add( getScmFile( filename ) );
63 }
64 else
65 {
66 files.add( getScmFile( line ) );
67 }
68 }
69
70 protected ScmFile getScmFile( String filename )
71 {
72 return new ScmFile( new File( currentDir, filename ).getAbsolutePath(), ScmFileStatus.CHECKED_OUT );
73 }
74
75 public List<ScmFile> getFiles()
76 {
77 return files;
78 }
79
80 public boolean hasBeenFed()
81 {
82 return fed;
83 }
84 }