1 package org.apache.maven.scm.provider.tfs.command;
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.ScmException;
23 import org.apache.maven.scm.ScmFileSet;
24 import org.apache.maven.scm.ScmVersion;
25 import org.apache.maven.scm.command.changelog.ChangeLogCommand;
26 import org.apache.maven.scm.command.update.AbstractUpdateCommand;
27 import org.apache.maven.scm.command.update.UpdateScmResult;
28 import org.apache.maven.scm.provider.ScmProviderRepository;
29 import org.apache.maven.scm.provider.tfs.TfsScmProviderRepository;
30 import org.apache.maven.scm.provider.tfs.command.consumer.ErrorStreamConsumer;
31 import org.apache.maven.scm.provider.tfs.command.consumer.FileListConsumer;
32
33
34
35
36 public class TfsUpdateCommand
37 extends AbstractUpdateCommand
38 {
39
40 protected UpdateScmResult executeUpdateCommand( ScmProviderRepository r, ScmFileSet f, ScmVersion v )
41 throws ScmException
42 {
43 FileListConsumer fileConsumer = new FileListConsumer();
44 ErrorStreamConsumer err = new ErrorStreamConsumer();
45
46 TfsCommand command = createCommand( r, f, v );
47 int status = command.execute( fileConsumer, err );
48 if ( status != 0 || err.hasBeenFed() )
49 {
50 return new UpdateScmResult( command.getCommandString(), "Error code for TFS update command - " + status,
51 err.getOutput(), false );
52 }
53 return new UpdateScmResult( command.getCommandString(), fileConsumer.getFiles() );
54 }
55
56 public TfsCommand createCommand( ScmProviderRepository r, ScmFileSet f, ScmVersion v )
57 {
58 String serverPath = ( (TfsScmProviderRepository) r ).getServerPath();
59 TfsCommand command = new TfsCommand( "get", r, f, getLogger() );
60 command.addArgument( serverPath );
61 if ( v != null && !v.equals( "" ) )
62 {
63 String vType = "";
64 if ( v.getType().equals( "Tag" ) )
65 {
66 vType = "L";
67 }
68 if ( v.getType().equals( "Revision" ) )
69 {
70 vType = "C";
71 }
72 command.addArgument( "-version:" + vType + v.getName() );
73 }
74 return command;
75 }
76
77 protected ChangeLogCommand getChangeLogCommand()
78 {
79 TfsChangeLogCommand changeLogCommand = new TfsChangeLogCommand();
80 changeLogCommand.setLogger( getLogger() );
81 return changeLogCommand;
82 }
83
84 }