package org.apache.maven.release.jelly;

/* ====================================================================
 *   Copyright 2001-2004 The Apache Software Foundation.
 *
 *   Licensed 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 org.apache.commons.jelly.JellyTagException;
import org.apache.commons.jelly.XMLOutput;
import org.apache.maven.MavenConstants;
import org.apache.maven.project.Project;
import org.apache.maven.release.VersionTransformer;

public class VersionTransformerTag
    extends AbstractTransformerTag
{
    private VersionTransformer transformer;

    private String version;

    private String tag;

    public String getVersion()
    {
        return this.version;
    }

    public void setVersion( String version )
    {
        this.version = version;
    }

    public String getTag()
    {
        return this.tag;
    }

    public void setTag( String tag )
    {
        this.tag = tag;
    }

    public void doTag( XMLOutput output )
        throws JellyTagException
    {
        Project project = (Project) context.getVariable( MavenConstants.MAVEN_POM );

        transformer = new VersionTransformer( version, tag );
        transformer.setProject( project.getFile() );
        transformer.setVariables( project.getContext().getVariables() );
        transformer.setOutputFile( project.getFile() );

        context.setVariable( getTransformer(), transformer );
        context.setVariable( getTransformations(), transformer.getTransformations() );
    }
}
