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