001 /*
002 * ----------------------------------------------------------------------
003 * Copyright (C) 2009 Enrique Lara (k957@68k.org)
004 *
005 * TinLizard is free software; you can redistribute it and/or
006 * modify it under the terms of the GNU Lesser General Public License
007 * as published by the Free Software Foundation; either version 3.0
008 * of the License, or (at your option) any later version.
009 *
010 * TinLizard is distributed in the hope that it will be useful,
011 * but WITHOUT ANY WARRANTY; without even the implied warranty of
012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
013 * GNU Lesser General Public License for more details.
014 *
015 * You should have received a copy of the GNU Lesser General Public License
016 * along with TinLizard. If not, see http://www.gnu.org/licenses/.
017 * ----------------------------------------------------------------------
018 */
019 package tinlizard.dao;
020
021 import tinlizard.model.Codeline;
022
023 import java.util.Collection;
024
025 import org.apache.maven.model.Model;
026 import org.apache.maven.scm.ScmResult;
027 import org.apache.maven.scm.command.status.StatusScmResult;
028
029 /**
030 * Dao to provide access to SCM (version control) tools.
031 */
032 public interface ScmDao {
033 /** The Plexus role identifier. */
034 String ROLE = ScmDao.class.getName();
035
036 Model getPOM(Codeline project);
037
038 void releaseFiles(Codeline project);
039
040 StatusScmResult getPOMStatus(Codeline pb);
041
042 ScmResult update(Codeline pb);
043
044 boolean isValidSmUrl(String scmUrl);
045
046 void releaseFiles(Collection<Codeline> codelines);
047 }