/* * JBoss, Home of Professional Open Source. * Copyright 2011, Red Hat, Inc., and individual contributors * as indicated by the @author tags. See the copyright.txt file in the * distribution for a full listing of individual contributors. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.jboss.as.controller; /** * Provides control over the server's current {@link RunningMode}. * * @author Brian Stansberry (c) 2011 Red Hat Inc. */ public class RunningModeControl { private volatile RunningMode runningMode; private volatile boolean reloaded; private volatile boolean useCurrentConfig; private volatile String newBootFileName; private volatile Boolean suspend; public RunningModeControl(final RunningMode initialMode) { this.runningMode = initialMode; } public RunningMode getRunningMode() { return runningMode; } public void setRunningMode(RunningMode runningMode) { this.runningMode = runningMode; } public boolean isReloaded() { return reloaded; } public void setReloaded() { this.reloaded = true; } public void setUseCurrentConfig(boolean useCurrentConfig) { this.useCurrentConfig = useCurrentConfig; } public boolean isUseCurrentConfig() { return useCurrentConfig; } /** * * @return The suspend mode, or null if if has not been expliticly set */ public Boolean getSuspend() { return suspend; } public void setSuspend(Boolean suspend) { this.suspend = suspend; } /** * Get the new boot file name. For a standalone server this will be the location of the server configuration * (i.e. the standalone.xml variety). For a host controller this will be the location of the host configuration * (i.e. the host.xml variety). Once called this method will clear the new boot file name. * * @return the new boot file name. */ public String getAndClearNewBootFileName() { String newBootFileName = this.newBootFileName; this.newBootFileName = null; return newBootFileName; } /** * Set the new boot file name. For a standalone server this will be the location of the server configuration * (i.e. the standalone.xml variety). For a host controller this will be the location of the host configuration * (i.e. the host.xml variety). * * @param newBootFileName the name of the new boot file. */ public void setNewBootFileName(String newBootFileName) { this.newBootFileName = newBootFileName; } }