/* * RHQ Management Platform * Copyright (C) 2005-2008 Red Hat, Inc. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ package org.rhq.core.domain.operation.bean; import java.util.List; import org.rhq.core.domain.resource.Resource; import org.rhq.core.domain.resource.group.ResourceGroup; /** * A simple non-entity POJO that describes a particular scheduled Resource group operation. */ public class GroupOperationSchedule extends OperationSchedule { private static final long serialVersionUID = 1L; private ResourceGroup group; private List<Resource> executionOrder; private boolean haltOnFailure = false; // default to not stop on error public GroupOperationSchedule() { } public ResourceGroup getGroup() { return group; } public void setGroup(ResourceGroup group) { this.group = group; } /** * The order to execute the operations - the first resource in the list is the first one to get its operation * invoked. If this is <code>null</code>, all operations can be invoked in any order and may even be done * concurrently. * * @return list of resources in the order in which their operations are invoked, or <code>null</code> */ public List<Resource> getExecutionOrder() { return executionOrder; } public void setExecutionOrder(List<Resource> executionOrder) { this.executionOrder = executionOrder; } /** * If <code>true</code>, the group operation will halt whenever one individual resource fails to execute. When * executing in order, this means once a failure occurs, the resources next in line to execute will abort and not * attempt to execute. If not executing in any particular order, you are not guaranteed which will stop and which * will continue since all are executed as fast as possible, but the group operation will attempt to stop as best it * can. * * @return halt flag */ public boolean isHaltOnFailure() { return haltOnFailure; } /** * need a getXXX method instead of isXXX method for proper referencing from facelets pages */ public boolean getHaltOnFailure() { return haltOnFailure; } public void setHaltOnFailure(boolean haltOnFailure) { this.haltOnFailure = haltOnFailure; } @Override public String toString() { StringBuilder str = new StringBuilder("GroupOperationSchedule: "); str.append("group=[" + this.group); str.append("], execution-order=[" + this.executionOrder); str.append("], halt-on-failure=[" + this.haltOnFailure); str.append("],"); str.append(super.toString()); return str.toString(); } }