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