Java tutorial
/** * Copyright (c) 2009--2014 Red Hat, Inc. * * This software is licensed to you under the GNU General Public License, * version 2 (GPLv2). There is NO WARRANTY for this software, express or * implied, including the implied warranties of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2 * along with this software; if not, see * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. * * Red Hat trademarks are not licensed under GPLv2. No permission is * granted to use or replicate Red Hat trademarks that are incorporated * in this software or its documentation. */ package com.redhat.rhn.domain.kickstart; import java.util.Date; import java.io.Serializable; import org.apache.commons.lang.builder.HashCodeBuilder; import com.redhat.rhn.domain.rhnpackage.PackageName; /** * KickstartPackage * @version $Rev$ */ public class KickstartPackage implements Serializable, Comparable<KickstartPackage> { private static final long serialVersionUID = 1L; private Long position; private Date created; private Date modified; private KickstartData ksData; private PackageName packageName; /** * */ public KickstartPackage() { super(); } /** * @param ksDataIn identifies kickstart * @param packageNameIn PackageName to be associated */ public KickstartPackage(KickstartData ksDataIn, PackageName packageNameIn) { super(); this.ksData = ksDataIn; this.packageName = packageNameIn; this.position = 0L; } /** * @param ksDataIn identifies kickstart * @param packageNameIn PackageName to be associated * @param posIn position the package Name is in the kickstart package list */ public KickstartPackage(KickstartData ksDataIn, PackageName packageNameIn, Long posIn) { this(ksDataIn, packageNameIn); this.position = posIn; } /** * @return Returns the position. */ public Long getPosition() { return position; } /** * @param positionIn The position to set. */ public void setPosition(Long positionIn) { this.position = positionIn; } /** * @return Returns the created. */ public Date getCreated() { return created; } /** * @param createdIn The created to set. */ public void setCreated(Date createdIn) { this.created = createdIn; } /** * @return Returns the modified. */ public Date getModified() { return modified; } /** * @param modifiedIn The modified to set. */ public void setModified(Date modifiedIn) { this.modified = modifiedIn; } /** * @return Returns the ksdata. */ public KickstartData getKsData() { return ksData; } /** * @param ksdata The ksdata to set. */ public void setKsData(KickstartData ksdata) { this.ksData = ksdata; } /** * @return Returns the packageName. */ public PackageName getPackageName() { return packageName; } /** * @param pn The packageName to set. */ public void setPackageName(PackageName pn) { this.packageName = pn; } /** * @param that KickstartPackage to be compared * @return -1,0,1 for sort algo */ public int compareTo(KickstartPackage that) { final int equal = 0; if (this.equals(that)) { return equal; } int comparism = this.getKsData().getLabel().compareTo(that.getKsData().getLabel()); if (equal != comparism) { return comparism; } comparism = this.getPosition().compareTo(that.getPosition()); if (equal != comparism) { return comparism; } return this.getPackageName().compareTo(that.getPackageName()); } /** * {@inheritDoc} */ public boolean equals(final Object other) { if (!(other instanceof KickstartPackage)) { return false; } KickstartPackage that = (KickstartPackage) other; return this.hashCode() == other.hashCode(); } /** * {@inheritDoc} */ public int hashCode() { return new HashCodeBuilder().append(getKsData().getId()).append(getPosition()).append(getPackageName()) .toHashCode(); } /** * {@inheritDoc} */ public String toString() { return "{ " + this.getKsData().getId().toString() + ", " + this.getPosition().toString() + ", " + this.getPackageName().getName() + " }"; } /** * Produce a clone of a kickstartPackage object * @param data The new kickstart data * @return the clone */ public KickstartPackage deepCopy(KickstartData data) { KickstartPackage kp = new KickstartPackage(); kp.setKsData(data); kp.setPackageName(this.getPackageName()); kp.setPosition(this.getPosition()); return kp; } }