/** * Copyright (c) 2009--2010 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 org.apache.commons.lang.StringUtils; import java.util.Date; /** * KickstartCommandName * @version $Rev$ */ public class KickstartCommand implements Comparable { private Long id; private String arguments; private Date created; private Date modified; private KickstartCommandName commandName; private KickstartData kickstartData; private Integer customPosition; /** * @return Returns the id. */ public Long getId() { return id; } /** * @param i The id to set. */ public void setId(Long i) { this.id = i; } /** * @return Returns the name. */ public String getArguments() { return arguments; } /** * @param argsIn The arguments to set. */ public void setArguments(String argsIn) { this.arguments = argsIn; } /** * @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 getKickstartData() { return kickstartData; } /** * @param ksdataIn The KickstartData to set. */ public void setKickstartData(KickstartData ksdataIn) { this.kickstartData = ksdataIn; } /** * @return Returns the kickstart command name. */ public KickstartCommandName getCommandName() { return commandName; } /** * @param commandNameIn The KickstartData to set. */ public void setCommandName(KickstartCommandName commandNameIn) { this.commandName = commandNameIn; } /** * * @param kc KickstartCommand to compare * @return how does it stack up! */ public int compareTo(Object kc) { if (kc == this) { return 0; } KickstartCommand k = (KickstartCommand)kc; int order = getCommandName().getOrder().compareTo(k.getCommandName().getOrder()); if (k.getCommandName().getName().equals("custom")) { return order; } if (order == 0) { String ourArgs = StringUtils.defaultString(getArguments(), ""); String theirArgs = StringUtils.defaultString(k.getArguments(), ""); order = ourArgs.compareTo(theirArgs); } return order; } /** * Clone or 'deepCopy' this KickstartCommand into a new one * @param ksDataIn who owns this new instance * @return KickstartCommand object that is new. */ public KickstartCommand deepCopy(KickstartData ksDataIn) { KickstartCommand cloned = new KickstartCommand(); cloned.setArguments(this.getArguments()); cloned.setCommandName(this.getCommandName()); cloned.setKickstartData(ksDataIn); Date now = new Date(); cloned.setCreated(now); cloned.setModified(now); return cloned; } /** * {@inheritDoc} */ public String toString() { return this.getClass().getName() + " name: " + this.getCommandName().getName() + " arguments " + getArguments(); } /** * gets the custom command position * @return the position of the custom option */ public Integer getCustomPosition() { return customPosition; } /** * sets the custom command position. This is ignored by KickstartCommandComparator * if id is not null * @param customPositionIn the position to set the custom option for */ public void setCustomPosition(Integer customPositionIn) { this.customPosition = customPositionIn; } }