blob: 9a65677cdad66630fdc60be21ebc4baea9ca1cee [file] [log] [blame]
/**********************************************************************
* Copyright (c) 2012, 2014 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License 2.0 which
* accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Bernd Hufmann - Initial API and implementation
* Jonathan Rajotte - Machine interface support and utility function
**********************************************************************/
package org.eclipse.tracecompass.internal.lttng2.control.core.model;
import java.security.InvalidParameterException;
/**
* Enumeration for enabled/disabled states.
*
* @author Bernd Hufmann
*/
public enum TraceEnablement {
// ------------------------------------------------------------------------
// Enum definition
// ------------------------------------------------------------------------
/** Tracing is disabled */
DISABLED("disabled", "false"), //$NON-NLS-1$ //$NON-NLS-2$
/** Tracing is enabled */
ENABLED("enabled", "true"); //$NON-NLS-1$ //$NON-NLS-2$
// ------------------------------------------------------------------------
// Attributes
// ------------------------------------------------------------------------
/**
* Name of enum
*/
private final String fInName;
private final String fInMiName;
// ------------------------------------------------------------------------
// Constuctors
// ------------------------------------------------------------------------
/**
* Private constructor
*
* @param name
* the name of state
*/
private TraceEnablement(String name, String miName) {
fInName = name;
fInMiName = miName;
}
// ------------------------------------------------------------------------
// Accessors
// ------------------------------------------------------------------------
/**
* @return state name
*/
public String getInName() {
return fInName;
}
/**
* @return state name
*/
public String getInMiName() {
return fInMiName;
}
/**
* @param name
* name of the desired enum
* @return the corresponding {@link TraceEnablement} matching name
*/
public static TraceEnablement valueOfString(String name) {
if (name == null) {
throw new InvalidParameterException();
}
for (TraceEnablement enablementType : TraceEnablement.values()) {
boolean exist = enablementType.fInName.equalsIgnoreCase(name) || enablementType.fInMiName.equalsIgnoreCase(name);
if (exist) {
return enablementType;
}
}
return DISABLED;
}
}