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 public class FileListConsumer
31 implements StreamConsumer
32 {
33
34 private boolean fed = false;
35
36 protected String currentDir = "";
37
38 private List<ScmFile> files = new ArrayList<ScmFile>();
39
40 public void consumeLine( String line )
41 {
42 fed = true;
43 if ( line.endsWith( ":" ) )
44 {
45 currentDir = line.substring( 0, line.lastIndexOf( ':' ) );
46 ScmFile scmFile = new ScmFile( currentDir, ScmFileStatus.CHECKED_OUT );
47 if ( !files.contains( scmFile ) )
48 {
49 files.add( scmFile );
50 }
51 }
52 else if ( line.trim().equals( "" ) )
53 {
54 currentDir = "";
55 }
56 else if ( !currentDir.equals( "" ) && line.indexOf( ' ' ) >= 0 )
57 {
58 String filename = line.split( " " )[1];
59 files.add( getScmFile( filename ) );
60 }
61 else
62 {
63 files.add( getScmFile( line ) );
64 }
65 }
66
67 protected ScmFile getScmFile( String filename )
68 {
69 return new ScmFile( new File( currentDir, filename ).getAbsolutePath(), ScmFileStatus.CHECKED_OUT );
70 }
71
72 public List<ScmFile> getFiles()
73 {
74 return files;
75 }
76
77 public boolean hasBeenFed()
78 {
79 return fed;
80 }
81 }