001    package org.apache.maven.scm.provider.svn;
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.ChangeFile;
023    import org.apache.maven.scm.ChangeSet;
024    import org.apache.maven.scm.provider.ScmProviderRepository;
025    import org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository;
026    import org.codehaus.plexus.util.StringUtils;
027    
028    import java.util.Date;
029    import java.util.Iterator;
030    import java.util.List;
031    
032    /**
033     * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
034     * @version $Id: SvnChangeSet.java 1058775 2011-01-13 22:52:38Z olamy $
035     */
036    public class SvnChangeSet
037        extends ChangeSet
038    {
039    
040        private static final long serialVersionUID = -4454710577968060741L;
041    
042        public SvnChangeSet()
043        {
044            super();
045        }
046    
047        public SvnChangeSet( String strDate, String userDatePattern, String comment, String author,
048                             List<ChangeFile> files )
049        {
050            super( strDate, userDatePattern, comment, author, files );
051        }
052    
053        public SvnChangeSet( Date date, String comment, String author, List<ChangeFile> files )
054        {
055            super( date, comment, author, files );
056        }
057    
058        /** {@inheritDoc} */
059        public boolean containsFilename( String filename, ScmProviderRepository repository )
060        {
061            SvnScmProviderRepository repo = (SvnScmProviderRepository) repository;
062    
063            String url = repo.getUrl();
064    
065            if ( !url.endsWith( "/" ) )
066            {
067                url += "/";
068            }
069    
070            String currentFile = url + StringUtils.replace( filename, "\\", "/" );
071    
072            if ( getFiles() != null )
073            {
074                for ( Iterator<ChangeFile> i = getFiles().iterator(); i.hasNext(); )
075                {
076                    ChangeFile file = i.next();
077    
078                    if ( currentFile.endsWith( StringUtils.replace( file.getName(), "\\", "/" ) ) )
079                    {
080                        return true;
081                    }
082                }
083            }
084    
085            return false;
086        }
087    }