001    package org.apache.maven.scm.provider.synergy;
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.ScmException;
024    import org.apache.maven.scm.ScmFileSet;
025    import org.apache.maven.scm.command.add.AddScmResult;
026    import org.apache.maven.scm.command.changelog.ChangeLogScmResult;
027    import org.apache.maven.scm.command.checkin.CheckInScmResult;
028    import org.apache.maven.scm.command.checkout.CheckOutScmResult;
029    import org.apache.maven.scm.command.edit.EditScmResult;
030    import org.apache.maven.scm.command.remove.RemoveScmResult;
031    import org.apache.maven.scm.command.status.StatusScmResult;
032    import org.apache.maven.scm.command.tag.TagScmResult;
033    import org.apache.maven.scm.command.update.UpdateScmResult;
034    import org.apache.maven.scm.provider.AbstractScmProvider;
035    import org.apache.maven.scm.provider.ScmProviderRepository;
036    import org.apache.maven.scm.provider.synergy.command.add.SynergyAddCommand;
037    import org.apache.maven.scm.provider.synergy.command.changelog.SynergyChangeLogCommand;
038    import org.apache.maven.scm.provider.synergy.command.checkin.SynergyCheckInCommand;
039    import org.apache.maven.scm.provider.synergy.command.checkout.SynergyCheckOutCommand;
040    import org.apache.maven.scm.provider.synergy.command.edit.SynergyEditCommand;
041    import org.apache.maven.scm.provider.synergy.command.remove.SynergyRemoveCommand;
042    import org.apache.maven.scm.provider.synergy.command.status.SynergyStatusCommand;
043    import org.apache.maven.scm.provider.synergy.command.tag.SynergyTagCommand;
044    import org.apache.maven.scm.provider.synergy.command.update.SynergyUpdateCommand;
045    import org.apache.maven.scm.provider.synergy.repository.SynergyScmProviderRepository;
046    import org.apache.maven.scm.repository.ScmRepositoryException;
047    
048    /**
049     * @author <a href="mailto:julien.henry@capgemini.com">Julien Henry</a>
050     * @version $Id: SynergyScmProvider.java 1333668 2012-05-03 22:37:08Z hboutemy $
051     * @plexus.component role="org.apache.maven.scm.provider.ScmProvider" role-hint="synergy"
052     */
053    public class SynergyScmProvider
054        extends AbstractScmProvider
055    {
056    
057        /** {@inheritDoc} */
058        public ScmProviderRepository makeProviderScmRepository( String scmSpecificUrl, char delimiter )
059            throws ScmRepositoryException
060        {
061            getLogger().debug( "Creating SynergyScmProviderRepository..." );
062            return new SynergyScmProviderRepository( scmSpecificUrl );
063        }
064    
065        /** {@inheritDoc} */
066        public String getScmType()
067        {
068            return "synergy";
069        }
070    
071        /** {@inheritDoc} */
072        public boolean requiresEditMode()
073        {
074            return true;
075        }
076    
077        /** {@inheritDoc} */
078        public String getScmSpecificFilename()
079        {
080            return "_ccmwaid.inf";
081        }
082    
083        /** {@inheritDoc} */
084        public AddScmResult add( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
085            throws ScmException
086        {
087            SynergyAddCommand command = new SynergyAddCommand();
088    
089            command.setLogger( getLogger() );
090    
091            return (AddScmResult) command.execute( repository, fileSet, parameters );
092        }
093    
094        /** {@inheritDoc} */
095        public RemoveScmResult remove( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
096            throws ScmException
097        {
098            SynergyRemoveCommand command = new SynergyRemoveCommand();
099    
100            command.setLogger( getLogger() );
101    
102            return (RemoveScmResult) command.execute( repository, fileSet, parameters );
103        }
104    
105        /** {@inheritDoc} */
106        public ChangeLogScmResult changelog( ScmProviderRepository repository, ScmFileSet fileSet,
107                                             CommandParameters parameters )
108            throws ScmException
109        {
110            SynergyChangeLogCommand command = new SynergyChangeLogCommand();
111    
112            command.setLogger( getLogger() );
113    
114            return (ChangeLogScmResult) command.execute( repository, fileSet, parameters );
115        }
116    
117        /** {@inheritDoc} */
118        public CheckInScmResult checkin( ScmProviderRepository repository, ScmFileSet fileSet,
119                                         CommandParameters parameters )
120            throws ScmException
121        {
122            SynergyCheckInCommand command = new SynergyCheckInCommand();
123    
124            command.setLogger( getLogger() );
125    
126            return (CheckInScmResult) command.execute( repository, fileSet, parameters );
127        }
128    
129        /** {@inheritDoc} */
130        public CheckOutScmResult checkout( ScmProviderRepository repository, ScmFileSet fileSet,
131                                           CommandParameters parameters )
132            throws ScmException
133        {
134            SynergyCheckOutCommand command = new SynergyCheckOutCommand();
135    
136            command.setLogger( getLogger() );
137    
138            return (CheckOutScmResult) command.execute( repository, fileSet, parameters );
139        }
140    
141        /** {@inheritDoc} */
142        public EditScmResult edit( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
143            throws ScmException
144        {
145            SynergyEditCommand command = new SynergyEditCommand();
146    
147            command.setLogger( getLogger() );
148    
149            return (EditScmResult) command.execute( repository, fileSet, parameters );
150        }
151    
152        /** {@inheritDoc} */
153        public UpdateScmResult update( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
154            throws ScmException
155        {
156            SynergyUpdateCommand command = new SynergyUpdateCommand();
157    
158            command.setLogger( getLogger() );
159    
160            return (UpdateScmResult) command.execute( repository, fileSet, parameters );
161        }
162    
163        /** {@inheritDoc} */
164        public TagScmResult tag( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
165            throws ScmException
166        {
167            SynergyTagCommand command = new SynergyTagCommand();
168    
169            command.setLogger( getLogger() );
170    
171            return (TagScmResult) command.execute( repository, fileSet, parameters );
172        }
173    
174        /** {@inheritDoc} */
175        public StatusScmResult status( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
176            throws ScmException
177        {
178            SynergyStatusCommand command = new SynergyStatusCommand();
179    
180            command.setLogger( getLogger() );
181    
182            return (StatusScmResult) command.execute( repository, fileSet, parameters );
183        }
184    
185    }