001package org.apache.maven.scm.provider;
002
003/*
004 * Licensed to the Apache Software Foundation (ASF) under one
005 * or more contributor license agreements.  See the NOTICE file
006 * distributed with this work for additional information
007 * regarding copyright ownership.  The ASF licenses this file
008 * to you under the Apache License, Version 2.0 (the
009 * "License"); you may not use this file except in compliance
010 * with the License.  You may obtain a copy of the License at
011 *
012 * http://www.apache.org/licenses/LICENSE-2.0
013 *
014 * Unless required by applicable law or agreed to in writing,
015 * software distributed under the License is distributed on an
016 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017 * KIND, either express or implied.  See the License for the
018 * specific language governing permissions and limitations
019 * under the License.
020 */
021
022import org.apache.maven.scm.CommandParameters;
023import org.apache.maven.scm.ScmBranch;
024import org.apache.maven.scm.ScmBranchParameters;
025import org.apache.maven.scm.ScmException;
026import org.apache.maven.scm.ScmFile;
027import org.apache.maven.scm.ScmFileSet;
028import org.apache.maven.scm.ScmTagParameters;
029import org.apache.maven.scm.ScmVersion;
030import org.apache.maven.scm.command.add.AddScmResult;
031import org.apache.maven.scm.command.blame.BlameScmRequest;
032import org.apache.maven.scm.command.blame.BlameScmResult;
033import org.apache.maven.scm.command.branch.BranchScmResult;
034import org.apache.maven.scm.command.changelog.ChangeLogScmRequest;
035import org.apache.maven.scm.command.changelog.ChangeLogScmResult;
036import org.apache.maven.scm.command.checkin.CheckInScmResult;
037import org.apache.maven.scm.command.checkout.CheckOutScmResult;
038import org.apache.maven.scm.command.diff.DiffScmResult;
039import org.apache.maven.scm.command.edit.EditScmResult;
040import org.apache.maven.scm.command.export.ExportScmResult;
041import org.apache.maven.scm.command.info.InfoScmResult;
042import org.apache.maven.scm.command.list.ListScmResult;
043import org.apache.maven.scm.command.mkdir.MkdirScmResult;
044import org.apache.maven.scm.command.remoteinfo.RemoteInfoScmResult;
045import org.apache.maven.scm.command.remove.RemoveScmResult;
046import org.apache.maven.scm.command.status.StatusScmResult;
047import org.apache.maven.scm.command.tag.TagScmResult;
048import org.apache.maven.scm.command.unedit.UnEditScmResult;
049import org.apache.maven.scm.command.untag.UntagScmResult;
050import org.apache.maven.scm.command.update.UpdateScmResult;
051import org.apache.maven.scm.repository.ScmRepository;
052import org.apache.maven.scm.repository.ScmRepositoryException;
053import org.apache.maven.scm.repository.UnknownRepositoryStructure;
054
055import java.io.File;
056import java.util.ArrayList;
057import java.util.Collections;
058import java.util.Date;
059import java.util.List;
060
061/**
062 * Stub implementation of ScmProvider for unit testing purposes.
063 * It allows setting the expected results that the different methods will return.
064 * More information about Stubs on
065 * <a href="http://martinfowler.com/bliki/TestDouble.html">Martin Fowler's TestDouble</a>
066 *
067 * @author <a href="mailto:carlos@apache.org">Carlos Sanchez</a>
068 *
069 */
070public class ScmProviderStub
071    implements ScmProvider
072{
073
074    private String scmType, scmSpecificFilename;
075
076    private boolean requiresEditmode;
077
078    private ScmProviderRepository scmProviderRepository = new ScmProviderRepositoryStub();
079
080    private List<String> errors = new ArrayList<String>();
081
082    private AddScmResult addScmResult;
083
084    private BranchScmResult branchScmResult;
085
086    private CheckInScmResult checkInScmResult;
087
088    private CheckOutScmResult checkOutScmResult;
089
090    private ChangeLogScmResult changeLogScmResult;
091
092    private DiffScmResult diffScmResult;
093
094    private RemoveScmResult removeScmResult;
095
096    private StatusScmResult statusScmResult;
097
098    private TagScmResult tagScmResult;
099
100    private UpdateScmResult updateScmResult;
101
102    private EditScmResult editScmResult;
103
104    private UnEditScmResult unEditScmResult;
105
106    private ListScmResult listScmResult;
107
108    private ExportScmResult exportScmResult;
109
110    private BlameScmResult blameScmResult;
111
112    private MkdirScmResult mkdirScmResult;
113
114    private UntagScmResult untagScmResult;
115
116    /**
117     * Create a new ScmProviderStub with bogus (not null) attributes
118     */
119    public ScmProviderStub()
120    {
121        setScmSpecificFilename( "" );
122        setAddScmResult( new AddScmResult( "", Collections.<ScmFile>emptyList() ) );
123        setBranchScmResult( new BranchScmResult( "", Collections.<ScmFile>emptyList() ) );
124        setChangeLogScmResult( new ChangeLogScmResult( "", "", "", true ) );
125        setCheckInScmResult( new CheckInScmResult( "", "", "", true ) );
126        setCheckOutScmResult( new CheckOutScmResult( "", "", "", true ) );
127        setDiffScmResult( new DiffScmResult( "", "", "", true ) );
128        setEditScmResult( new EditScmResult( "", "", "", true ) );
129        setExportScmResult( new ExportScmResult( "", "", "", true ) );
130        setRemoveScmResult( new RemoveScmResult( "", "", "", true ) );
131        setStatusScmResult( new StatusScmResult( "", "", "", true ) );
132        setTagScmResult( new TagScmResult( "", "", "", true ) );
133        setUnEditScmResult( new UnEditScmResult( "", "", "", true ) );
134        setUntagScmResult( new UntagScmResult( "", "", "", true ) );
135        setUpdateScmResult( new UpdateScmResult( "", "", "", true ) );
136        setBlameScmResult( new BlameScmResult( "", "", "", true ) );
137        setMkdirScmResult( new MkdirScmResult( "", "", "", true ) );
138    }
139
140    /**
141     * {@inheritDoc}
142     */
143    public String sanitizeTagName( String tag )
144    {
145        return tag;
146    }
147
148    /**
149     * {@inheritDoc}
150     */
151    public boolean validateTagName( String tag )
152    {
153        return true;
154    }
155
156    /**
157     * {@inheritDoc}
158     */
159    public String getScmType()
160    {
161        return scmType;
162    }
163
164    public void setScmSpecificFilename( String scmSpecificFilename )
165    {
166        this.scmSpecificFilename = scmSpecificFilename;
167    }
168
169    public boolean requiresEditMode()
170    {
171        return requiresEditmode;
172    }
173
174    public void setAddScmResult( AddScmResult addScmResult )
175    {
176        this.addScmResult = addScmResult;
177    }
178
179    public AddScmResult getAddScmResult()
180    {
181        return addScmResult;
182    }
183
184    public void setBranchScmResult( BranchScmResult branchScmResult )
185    {
186        this.branchScmResult = branchScmResult;
187    }
188
189    public BranchScmResult getBranchScmResult()
190    {
191        return branchScmResult;
192    }
193
194    public void setCheckInScmResult( CheckInScmResult checkInScmResult )
195    {
196        this.checkInScmResult = checkInScmResult;
197    }
198
199    public CheckInScmResult getCheckInScmResult()
200    {
201        return checkInScmResult;
202    }
203
204    public void setCheckOutScmResult( CheckOutScmResult checkOutScmResult )
205    {
206        this.checkOutScmResult = checkOutScmResult;
207    }
208
209    public CheckOutScmResult getCheckOutScmResult()
210    {
211        return checkOutScmResult;
212    }
213
214    public void setChangeLogScmResult( ChangeLogScmResult changeLogScmResult )
215    {
216        this.changeLogScmResult = changeLogScmResult;
217    }
218
219    public ChangeLogScmResult getChangeLogScmResult()
220    {
221        return changeLogScmResult;
222    }
223
224    public void setDiffScmResult( DiffScmResult diffScmResult )
225    {
226        this.diffScmResult = diffScmResult;
227    }
228
229    public DiffScmResult getDiffScmResult()
230    {
231        return diffScmResult;
232    }
233
234    public ExportScmResult getExportScmResult()
235    {
236        return exportScmResult;
237    }
238
239    public void setExportScmResult( ExportScmResult exportScmResult )
240    {
241        this.exportScmResult = exportScmResult;
242    }
243
244    public void setTagScmResult( TagScmResult tagScmResult )
245    {
246        this.tagScmResult = tagScmResult;
247    }
248
249    public TagScmResult getTagScmResult()
250    {
251        return tagScmResult;
252    }
253
254    public void setUntagScmResult( UntagScmResult untagScmResult )
255    {
256        this.untagScmResult = untagScmResult;
257    }
258
259    public UntagScmResult getUntagScmResult()
260    {
261        return untagScmResult;
262    }
263
264    public void setRemoveScmResult( RemoveScmResult removeScmResult )
265    {
266        this.removeScmResult = removeScmResult;
267    }
268
269    public RemoveScmResult getRemoveScmResult()
270    {
271        return removeScmResult;
272    }
273
274    public void setStatusScmResult( StatusScmResult statusScmResult )
275    {
276        this.statusScmResult = statusScmResult;
277    }
278
279    public StatusScmResult getStatusScmResult()
280    {
281        return statusScmResult;
282    }
283
284    public void setUpdateScmResult( UpdateScmResult updateScmResult )
285    {
286        this.updateScmResult = updateScmResult;
287    }
288
289    public UpdateScmResult getUpdateScmResult()
290    {
291        return updateScmResult;
292    }
293
294    public void setEditScmResult( EditScmResult editScmResult )
295    {
296        this.editScmResult = editScmResult;
297    }
298
299    public EditScmResult getEditScmResult()
300    {
301        return editScmResult;
302    }
303
304    public void setUnEditScmResult( UnEditScmResult unEditScmResult )
305    {
306        this.unEditScmResult = unEditScmResult;
307    }
308
309    public UnEditScmResult getUnEditScmResult()
310    {
311        return unEditScmResult;
312    }
313
314    public void setListScmResult( ListScmResult listScmResult )
315    {
316        this.listScmResult = listScmResult;
317    }
318
319    public ListScmResult getListScmResult()
320    {
321        return listScmResult;
322    }
323
324    public void setBlameScmResult( BlameScmResult blameScmResult )
325    {
326        this.blameScmResult = blameScmResult;
327    }
328
329    public BlameScmResult getBlameScmResult()
330    {
331        return blameScmResult;
332    }
333
334    public MkdirScmResult getMkdirScmResult()
335    {
336        return mkdirScmResult;
337    }
338
339    public void setMkdirScmResult( MkdirScmResult mkdirScmResult )
340    {
341        this.mkdirScmResult = mkdirScmResult;
342    }
343
344    /**
345     * {@inheritDoc}
346     */
347    public ScmProviderRepository makeProviderScmRepository( String scmSpecificUrl, char delimiter )
348        throws ScmRepositoryException
349    {
350        return scmProviderRepository;
351    }
352
353    /**
354     * {@inheritDoc}
355     */
356    public ScmProviderRepository makeProviderScmRepository( File path )
357        throws ScmRepositoryException, UnknownRepositoryStructure
358    {
359        return scmProviderRepository;
360    }
361
362    /**
363     * {@inheritDoc}
364     */
365    public List<String> validateScmUrl( String scmSpecificUrl, char delimiter )
366    {
367        return errors;
368    }
369
370    /**
371     * {@inheritDoc}
372     */
373    public String getScmSpecificFilename()
374    {
375        return scmSpecificFilename;
376    }
377
378    /**
379     * {@inheritDoc}
380     */
381    public AddScmResult add( ScmRepository repository, ScmFileSet fileSet )
382        throws ScmException
383    {
384        return getAddScmResult();
385    }
386
387    /**
388     * {@inheritDoc}
389     */
390    public AddScmResult add( ScmRepository repository, ScmFileSet fileSet, String message )
391        throws ScmException
392    {
393        return getAddScmResult();
394    }
395
396    public AddScmResult add( ScmRepository repository, ScmFileSet fileSet, CommandParameters commandParameters )
397        throws ScmException
398    {
399        return getAddScmResult();
400    }
401
402    /**
403     * {@inheritDoc}
404     */
405    public BranchScmResult branch( ScmRepository repository, ScmFileSet fileSet, String branchName )
406        throws ScmException
407    {
408        return getBranchScmResult();
409    }
410
411    /**
412     * {@inheritDoc}
413     */
414    public BranchScmResult branch( ScmRepository repository, ScmFileSet fileSet, String branchName, String message )
415        throws ScmException
416    {
417        return getBranchScmResult();
418    }
419
420    /**
421     * {@inheritDoc}
422     */
423    public BranchScmResult branch( ScmRepository repository, ScmFileSet fileSet, String branchName,
424                                   ScmBranchParameters scmBranchParameters )
425        throws ScmException
426    {
427        return getBranchScmResult();
428    }
429
430    /**
431     * {@inheritDoc}
432     */
433    public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate,
434                                         int numDays, String branch )
435        throws ScmException
436    {
437        return getChangeLogScmResult();
438    }
439
440    /**
441     * {@inheritDoc}
442     */
443    public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate,
444                                         int numDays, String branch, String datePattern )
445        throws ScmException
446    {
447        return getChangeLogScmResult();
448    }
449
450    /**
451     * {@inheritDoc}
452     */
453    public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, String startTag, String endTag )
454        throws ScmException
455    {
456        return getChangeLogScmResult();
457    }
458
459    /**
460     * {@inheritDoc}
461     */
462    public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, String startTag, String endTag,
463                                         String datePattern )
464        throws ScmException
465    {
466        return getChangeLogScmResult();
467    }
468
469    /**
470     * {@inheritDoc}
471     */
472    public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate,
473                                         int numDays, ScmBranch branch )
474        throws ScmException
475    {
476        return getChangeLogScmResult();
477    }
478
479    /**
480     * {@inheritDoc}
481     */
482    public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate,
483                                         int numDays, ScmBranch branch, String datePattern )
484        throws ScmException
485    {
486        return getChangeLogScmResult();
487    }
488
489    public ChangeLogScmResult changeLog( ChangeLogScmRequest scmRequest )
490        throws ScmException
491    {
492        return getChangeLogScmResult();
493    }
494
495    /**
496     * {@inheritDoc}
497     */
498    public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, ScmVersion startVersion,
499                                         ScmVersion endVersion )
500        throws ScmException
501    {
502        return getChangeLogScmResult();
503    }
504
505    /**
506     * {@inheritDoc}
507     */
508    public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, ScmVersion startRevision,
509                                         ScmVersion endRevision, String datePattern )
510        throws ScmException
511    {
512        return getChangeLogScmResult();
513    }
514
515    /**
516     * {@inheritDoc}
517     */
518    public CheckInScmResult checkIn( ScmRepository repository, ScmFileSet fileSet, String tag, String message )
519        throws ScmException
520    {
521        return getCheckInScmResult();
522    }
523
524    /**
525     * {@inheritDoc}
526     */
527    public CheckInScmResult checkIn( ScmRepository repository, ScmFileSet fileSet, String message )
528        throws ScmException
529    {
530        return getCheckInScmResult();
531    }
532
533    /**
534     * {@inheritDoc}
535     */
536    public CheckInScmResult checkIn( ScmRepository repository, ScmFileSet fileSet, ScmVersion revision, String message )
537        throws ScmException
538    {
539        return getCheckInScmResult();
540    }
541
542    /**
543     * {@inheritDoc}
544     */
545    public CheckOutScmResult checkOut( ScmRepository scmRepository, ScmFileSet scmFileSet, String tag,
546                                       boolean recursive )
547        throws ScmException
548    {
549        return getCheckOutScmResult();
550    }
551
552    /**
553     * {@inheritDoc}
554     */
555    public CheckOutScmResult checkOut( ScmRepository repository, ScmFileSet fileSet, String tag )
556        throws ScmException
557    {
558        return getCheckOutScmResult();
559    }
560
561    /**
562     * {@inheritDoc}
563     */
564    public CheckOutScmResult checkOut( ScmRepository repository, ScmFileSet fileSet )
565        throws ScmException
566    {
567        return getCheckOutScmResult();
568    }
569
570    /**
571     * {@inheritDoc}
572     */
573    public CheckOutScmResult checkOut( ScmRepository repository, ScmFileSet fileSet, ScmVersion version )
574        throws ScmException
575    {
576        return getCheckOutScmResult();
577    }
578
579    /**
580     * {@inheritDoc}
581     */
582    public CheckOutScmResult checkOut( ScmRepository scmRepository, ScmFileSet scmFileSet, boolean recursive )
583        throws ScmException
584    {
585        return getCheckOutScmResult();
586    }
587
588    /**
589     * {@inheritDoc}
590     */
591    public CheckOutScmResult checkOut( ScmRepository scmRepository, ScmFileSet scmFileSet, ScmVersion version,
592                                       boolean recursive )
593        throws ScmException
594    {
595        return getCheckOutScmResult();
596    }
597
598    @Override
599    public CheckOutScmResult checkOut( ScmRepository scmRepository, ScmFileSet scmFileSet, ScmVersion version,
600                                       CommandParameters commandParameters )
601        throws ScmException
602    {
603        return getCheckOutScmResult();
604    }
605
606    /**
607     * {@inheritDoc}
608     */
609    public DiffScmResult diff( ScmRepository repository, ScmFileSet fileSet, String startRevision, String endRevision )
610        throws ScmException
611    {
612        return getDiffScmResult();
613    }
614
615    /**
616     * {@inheritDoc}
617     */
618    public DiffScmResult diff( ScmRepository scmRepository, ScmFileSet scmFileSet, ScmVersion startVersion,
619                               ScmVersion endVersion )
620        throws ScmException
621    {
622        return getDiffScmResult();
623    }
624
625    /**
626     * @return getUpdateScmResult() always
627     */
628    public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag, Date lastUpdate,
629                                   String datePattern, boolean runChangelog )
630        throws ScmException
631    {
632        return getUpdateScmResult();
633    }
634
635    /**
636     * {@inheritDoc}
637     */
638    public EditScmResult edit( ScmRepository repository, ScmFileSet fileSet )
639        throws ScmException
640    {
641        return getEditScmResult();
642    }
643
644    /**
645     * {@inheritDoc}
646     */
647    public ExportScmResult export( ScmRepository repository, ScmFileSet fileSet, String tag )
648        throws ScmException
649    {
650        return getExportScmResult();
651    }
652
653    /**
654     * {@inheritDoc}
655     */
656    public ExportScmResult export( ScmRepository repository, ScmFileSet fileSet, String tag, String outputDirectory )
657        throws ScmException
658    {
659        return getExportScmResult();
660    }
661
662    /**
663     * {@inheritDoc}
664     */
665    public ExportScmResult export( ScmRepository repository, ScmFileSet fileSet )
666        throws ScmException
667    {
668        return getExportScmResult();
669    }
670
671    /**
672     * {@inheritDoc}
673     */
674    public ExportScmResult export( ScmRepository repository, ScmFileSet fileSet, ScmVersion version )
675        throws ScmException
676    {
677        return getExportScmResult();
678    }
679
680    /**
681     * {@inheritDoc}
682     */
683    public ExportScmResult export( ScmRepository repository, ScmFileSet fileSet, ScmVersion version,
684                                   String outputDirectory )
685        throws ScmException
686    {
687        return getExportScmResult();
688    }
689
690    /**
691     * {@inheritDoc}
692     */
693    public ListScmResult list( ScmRepository repository, ScmFileSet fileSet, boolean recursive, String tag )
694        throws ScmException
695    {
696        return getListScmResult();
697    }
698
699    /**
700     * {@inheritDoc}
701     */
702    public ListScmResult list( ScmRepository repository, ScmFileSet fileSet, boolean recursive, ScmVersion version )
703        throws ScmException
704    {
705        return getListScmResult();
706    }
707
708    /**
709     * {@inheritDoc}
710     */
711    public RemoveScmResult remove( ScmRepository repository, ScmFileSet fileSet, String message )
712        throws ScmException
713    {
714        return getRemoveScmResult();
715    }
716
717    /**
718     * {@inheritDoc}
719     */
720    public StatusScmResult status( ScmRepository repository, ScmFileSet fileSet )
721        throws ScmException
722    {
723        return getStatusScmResult();
724    }
725
726    /**
727     * {@inheritDoc}
728     */
729    public TagScmResult tag( ScmRepository repository, ScmFileSet fileSet, String tag )
730        throws ScmException
731    {
732        return getTagScmResult();
733    }
734
735    /**
736     * {@inheritDoc}
737     */
738    public TagScmResult tag( ScmRepository repository, ScmFileSet fileSet, String tag, String message )
739        throws ScmException
740    {
741        return getTagScmResult();
742    }
743
744    public TagScmResult tag( ScmRepository repository, ScmFileSet fileSet, String tagName,
745                             ScmTagParameters scmTagParameters )
746        throws ScmException
747    {
748        return getTagScmResult();
749    }
750
751    public UntagScmResult untag( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
752        throws ScmException
753    {
754        return getUntagScmResult();
755    }
756
757    /**
758     * {@inheritDoc}
759     */
760    public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag )
761        throws ScmException
762    {
763        return getUpdateScmResult();
764    }
765
766    /**
767     * {@inheritDoc}
768     */
769    public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag, boolean runChangelog )
770        throws ScmException
771    {
772        return getUpdateScmResult();
773    }
774
775    /**
776     * {@inheritDoc}
777     */
778    public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag, String datePattern )
779        throws ScmException
780    {
781        return getUpdateScmResult();
782    }
783
784    /**
785     * {@inheritDoc}
786     */
787    public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag, Date lastUpdate )
788        throws ScmException
789    {
790        return getUpdateScmResult();
791    }
792
793    /**
794     * {@inheritDoc}
795     */
796    public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag, Date lastUpdate,
797                                   String datePattern )
798        throws ScmException
799    {
800        return getUpdateScmResult();
801    }
802
803    /**
804     * {@inheritDoc}
805     */
806    public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet )
807        throws ScmException
808    {
809        return getUpdateScmResult();
810    }
811
812    /**
813     * {@inheritDoc}
814     */
815    public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, ScmVersion version )
816        throws ScmException
817    {
818        return getUpdateScmResult();
819    }
820
821    /**
822     * {@inheritDoc}
823     */
824    public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, boolean runChangelog )
825        throws ScmException
826    {
827        return getUpdateScmResult();
828    }
829
830    /**
831     * {@inheritDoc}
832     */
833    public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, ScmVersion version,
834                                   boolean runChangelog )
835        throws ScmException
836    {
837        return getUpdateScmResult();
838    }
839
840    /**
841     * {@inheritDoc}
842     */
843    public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, ScmVersion version,
844                                   String datePattern )
845        throws ScmException
846    {
847        return getUpdateScmResult();
848    }
849
850    /**
851     * {@inheritDoc}
852     */
853    public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, ScmVersion version, Date lastUpdate )
854        throws ScmException
855    {
856        return getUpdateScmResult();
857    }
858
859    /**
860     * {@inheritDoc}
861     */
862    public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, ScmVersion version, Date lastUpdate,
863                                   String datePattern )
864        throws ScmException
865    {
866        return getUpdateScmResult();
867    }
868
869    /**
870     * {@inheritDoc}
871     */
872    public UnEditScmResult unedit( ScmRepository repository, ScmFileSet fileSet )
873        throws ScmException
874    {
875        return getUnEditScmResult();
876    }
877
878    /**
879     * {@inheritDoc}
880     */
881    public BlameScmResult blame( ScmRepository repository, ScmFileSet fileSet, String filename )
882        throws ScmException
883    {
884        return getBlameScmResult();
885    }
886
887    public BlameScmResult blame( BlameScmRequest blameScmRequest )
888        throws ScmException
889    {
890        return getBlameScmResult();
891    }
892
893    /**
894     * {@inheritDoc}
895     */
896    public MkdirScmResult mkdir( ScmRepository repository, ScmFileSet fileSet, String message, boolean createInLocal )
897        throws ScmException
898    {
899        return getMkdirScmResult();
900    }
901
902    public InfoScmResult info( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
903        throws ScmException
904    {
905        return new InfoScmResult( "", "", "", true );
906    }
907
908    public RemoteInfoScmResult remoteInfo( ScmProviderRepository repository, ScmFileSet fileSet,
909                                           CommandParameters parameters )
910        throws ScmException
911    {
912        return new RemoteInfoScmResult( "", null, null );
913    }
914}