/*******************************************************************************
 * Copyright (c) 2000, 2010 IBM Corporation and others.
 * 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:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.gef.util;

/**
 * A structure for storing multiple flags compactly using a 32-bit
 * <code>int</code>.
 * 
 * @author hudsonr
 */
public class FlagSupport {

	private int flags;

	/**
	 * Returns <code>true</code> the flag (or one of the flags) indicated by the
	 * given bitmask is set to true.
	 * 
	 * @param flag
	 *            the bitmask of a flag or flags
	 * @return <code>true</code> if one of the flags is true
	 */
	protected boolean getFlag(int flag) {
		return (flags & flag) != 0;
	}

	/**
	 * Sets the flag (or all of the flags) indicated by the given bitmask to the
	 * given value.
	 * 
	 * @param flag
	 *            the bitmask of the flag or flags
	 * @param value
	 *            the new value
	 */
	protected void setFlag(int flag, boolean value) {
		if (value)
			flags |= flag;
		else
			flags &= ~flag;
	}

}
