1 package org.apache.maven.scm.provider.accurev.command.remove;
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.List;
24
25 import org.apache.maven.scm.CommandParameter;
26 import org.apache.maven.scm.CommandParameters;
27 import org.apache.maven.scm.ScmException;
28 import org.apache.maven.scm.ScmFile;
29 import org.apache.maven.scm.ScmFileSet;
30 import org.apache.maven.scm.ScmFileStatus;
31 import org.apache.maven.scm.ScmResult;
32 import org.apache.maven.scm.command.remove.RemoveScmResult;
33 import org.apache.maven.scm.log.ScmLogger;
34 import org.apache.maven.scm.provider.ScmProviderRepository;
35 import org.apache.maven.scm.provider.accurev.AccuRev;
36 import org.apache.maven.scm.provider.accurev.AccuRevException;
37 import org.apache.maven.scm.provider.accurev.AccuRevScmProviderRepository;
38 import org.apache.maven.scm.provider.accurev.command.AbstractAccuRevCommand;
39
40
41
42
43 public class AccuRevRemoveCommand
44 extends AbstractAccuRevCommand
45 {
46
47 public AccuRevRemoveCommand( ScmLogger logger )
48 {
49 super( logger );
50 }
51
52 @Override
53 protected ScmResult executeAccurevCommand( AccuRevScmProviderRepository repository, ScmFileSet fileSet,
54 CommandParameters parameters )
55 throws ScmException, AccuRevException
56 {
57
58 AccuRev accuRev = repository.getAccuRev();
59
60 String message = parameters.getString( CommandParameter.MESSAGE, "" );
61
62 File basedir = fileSet.getBasedir();
63
64 List<File> relativeFiles = fileSet.getFileList();
65
66 final List<File> removedFiles = accuRev.defunct( basedir, relativeFiles, message );
67
68 if ( removedFiles != null )
69 {
70 List<ScmFile> resultFiles = getScmFiles( removedFiles, ScmFileStatus.DELETED );
71 return new RemoveScmResult( accuRev.getCommandLines(), resultFiles );
72 }
73 else
74 {
75 return new RemoveScmResult( accuRev.getCommandLines(), "AccuRev Error", accuRev.getErrorOutput(), false );
76 }
77 }
78
79 public RemoveScmResult remove( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
80 throws ScmException
81 {
82 return (RemoveScmResult) execute( repository, fileSet, parameters );
83 }
84
85 }