/******************************************************************************* * * Copyright (c) 2004-2010 Oracle Corporation. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * * *******************************************************************************/ package hudson.slaves; /** * Additional convenience implementation on top of {@link Cloud} that are likely * useful to typical {@link Cloud} implementations. * * <p> Whereas {@link Cloud} is the contract between the rest of Hudson and a * cloud implementation, this class focuses on providing a convenience to * minimize the effort it takes to integrate a new cloud to Hudson. * * @author Kohsuke Kawaguchi */ public abstract class AbstractCloudImpl extends Cloud { /** * Upper bound on how many instances we may provision. */ private int instanceCap; protected AbstractCloudImpl(String name, String instanceCapStr) { super(name); setInstanceCapStr(instanceCapStr); } protected void setInstanceCapStr(String value) { if (value == null || value.equals("")) { this.instanceCap = Integer.MAX_VALUE; } else { this.instanceCap = Integer.parseInt(value); } } /** * Gets the instance cap as string. Used primarily for form binding. */ public String getInstanceCapStr() { if (instanceCap == Integer.MAX_VALUE) { return ""; } else { return String.valueOf(instanceCap); } } /** * Gets the instance cap as int, where the capless is represented as * {@link Integer#MAX_VALUE} */ public int getInstanceCap() { return instanceCap; } protected void setInstanceCap(int v) { this.instanceCap = v; } }