blob: af740b6d25bf9d35f8c643159e2812a9ea3b7f47 [file] [log] [blame]
package org.apache.maven.scm;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import java.io.Serializable;
/**
* A set of information about revisions of a file as returned by CVS's log
* command
*
* @author <a href="mailto:dion@multitask.com.au">dIon Gillard </a>
* @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
* @version $Id$
*/
public class ChangeFile
implements Serializable
{
private static final long serialVersionUID = 6294855290542668753L;
/**
* the name of the file relative to the project directory.
*/
private String name;
/**
* the latest revision of the file.
*/
private String revision;
/**
* edit type on the file
* note: perhaps we should use a different type, ideally enum? this one seems to target quite different usecases ...
* @since 1.7
*/
private ScmFileStatus action;
/**
* the name before copying or moving
* @since 1.7
*/
private String originalName;
/**
* the revision from which we {@link ScmFileStatus copied} or {@link ScmFileStatus moved} this file or directory
* @since 1.7
*/
private String originalRevision;
/**
* Constructor for the ChangeFile object without all details available
*
* @param name file name
*/
public ChangeFile( String name )
{
setName( name );
}
/**
* Constructor for the ChangeFile object
*
* @param name file name
* @param rev latest revision of the file
*/
public ChangeFile( String name, String rev )
{
setName( name );
setRevision( rev );
}
/**
* Gets the name attribute of the ChangeLogFile object.
*
* @return the file name
*/
public String getName()
{
return name;
}
/**
* Setter for property name.
*
* @param name New value of property name.
*/
public void setName( String name )
{
this.name = name;
}
public String getOriginalName()
{
return originalName;
}
public void setOriginalName( String originalName )
{
this.originalName = originalName;
}
public String getOriginalRevision()
{
return originalRevision;
}
public void setOriginalRevision( String originalRevision )
{
this.originalRevision = originalRevision;
}
/**
* Gets the revision attribute of the ChangeLogFile object.
*
* @return the latest revision of the file
*/
public String getRevision()
{
return revision;
}
/**
* Setter for property revision.
*
* @param revision New value of property revision.
*/
public void setRevision( String revision )
{
this.revision = revision;
}
public ScmFileStatus getAction()
{
return action;
}
public void setAction( ScmFileStatus action )
{
this.action = action;
}
/**
* Provide a version of the object as a string for debugging purposes
*
* @return a {@link String}made up of the properties of the object
*/
public String toString()
{
StringBuilder buffer = new StringBuilder( );
if ( getAction() != null )
{
buffer.append( "[" ).append( getAction() ).append( "]:" );
}
buffer.append( getName() );
if ( getRevision() != null )
{
buffer.append( ", " ).append( getRevision() );
}
if ( getOriginalName() != null )
{
buffer.append( ", originalName=" ).append( getOriginalName() );
}
if ( getOriginalRevision() != null )
{
buffer.append( ", originalRevision=" ).append( getOriginalRevision() );
}
return buffer.toString();
}
}