1 package org.apache.maven.scm; 2 3 /* 4 * Licensed to the Apache Software Foundation (ASF) under one 5 * or more contributor license agreements. See the NOTICE file 6 * distributed with this work for additional information 7 * regarding copyright ownership. The ASF licenses this file 8 * to you under the Apache License, Version 2.0 (the 9 * "License"); you may not use this file except in compliance 10 * with the License. You may obtain a copy of the License at 11 * 12 * http://www.apache.org/licenses/LICENSE-2.0 13 * 14 * Unless required by applicable law or agreed to in writing, 15 * software distributed under the License is distributed on an 16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 17 * KIND, either express or implied. See the License for the 18 * specific language governing permissions and limitations 19 * under the License. 20 */ 21 22 import org.apache.maven.scm.repository.ScmRepository; 23 24 import java.io.Serializable; 25 26 /** 27 * Base class for SCM wrapped parameters. 28 * Unlike {@link ScmResult}, this is mutable, as its use requires more flexibility when configuring the call. 29 * <p>Most parameters should be stored in {@link #getCommandParameters() parameters} field, as it makes them easy to 30 * pass down to the implementation side.</p> 31 * <p> 32 * Methods in descendant classes should perform all neccessary (un)marshalling so that user can work with nice 33 * semantic typesafe properties.</p> 34 * 35 * @author Petr Kozelka 36 * @since 1.8 37 */ 38 public class ScmRequest 39 implements Serializable 40 { 41 private static final long serialVersionUID = 20120620L; 42 43 private ScmRepository scmRepository; 44 45 private ScmFileSet scmFileSet; 46 47 protected final CommandParameters parameters = new CommandParameters(); 48 49 public ScmRequest() 50 { 51 // no op 52 } 53 54 public ScmRequest( ScmRepository scmRepository, ScmFileSet scmFileSet ) 55 { 56 this.scmRepository = scmRepository; 57 this.scmFileSet = scmFileSet; 58 } 59 60 public ScmRepository getScmRepository() 61 { 62 return scmRepository; 63 } 64 65 /** 66 * @param scmRepository the source control system 67 */ 68 public void setScmRepository( ScmRepository scmRepository ) 69 { 70 this.scmRepository = scmRepository; 71 } 72 73 public ScmFileSet getScmFileSet() 74 { 75 return scmFileSet; 76 } 77 78 /** 79 * The files being processed. Implementations can also work with all files from the 80 * {@link org.apache.maven.scm.ScmFileSet#getBasedir()} downwards. 81 * @param scmFileSet working copy and its selected files 82 */ 83 public void setScmFileSet( ScmFileSet scmFileSet ) 84 { 85 this.scmFileSet = scmFileSet; 86 } 87 88 /** 89 * Holds all parameter values passed to the implementing part. 90 * These parameters are usually translated to commandline options or arguments. 91 * @return command parameters 92 */ 93 public CommandParameters getCommandParameters() 94 { 95 return parameters; 96 } 97 }