All Downloads are FREE. Search and download functionalities are using the official Maven repository.

hudson.plugins.git.util.Build Maven / Gradle / Ivy

package hudson.plugins.git.util;

import hudson.model.Result;
import hudson.plugins.git.Revision;

import java.io.Serializable;

import org.kohsuke.stapler.export.Exported;
import org.kohsuke.stapler.export.ExportedBean;
import org.spearce.jgit.lib.ObjectId;

@ExportedBean(defaultVisibility = 999)
public class Build implements Serializable, Cloneable
{
	private static final long serialVersionUID = 1L;

	/**
	 * Revision marked as being built.
	 */
	public Revision revision;

	/**
	 * Revision that was subject to a merge.
	 */
	public Revision mergeRevision;

	public int      hudsonBuildNumber;
	public Result   hudsonBuildResult;

	// TODO: We don't currently store the result correctly.

	public Build(Revision revision, int buildNumber, Result result) {
		this.revision = revision;
		this.hudsonBuildNumber = buildNumber;
		this.hudsonBuildResult = result;
	}

	public ObjectId getSHA1()
	{
		return revision.getSha1();
	}

	@Exported
	public Revision getRevision() {
		return revision;
	}

	@Exported
	public int getBuildNumber() {
		return hudsonBuildNumber;
	}

	@Exported
	public Result getBuildResult() {
		return hudsonBuildResult;
	}

	public @Override String toString()
	{
		String str =  "Build #" + hudsonBuildNumber + " of " + revision.toString();
		if( mergeRevision != null )
			str += " merged with " + mergeRevision;
		return str;
	}

	@Override
	public Build clone()
	{
		Build clone;
		try
		{
			clone = (Build) super.clone();
		}
		catch (CloneNotSupportedException e)
		{
			throw new RuntimeException("Error cloning Build", e);
		}

		if (revision != null)
			clone.revision = revision.clone();
		if (mergeRevision != null)
			clone.mergeRevision = mergeRevision.clone();

		return clone;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy