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