blob: 3a2fedf5e1bb9bd16354091401a87363616f99bc [file] [log] [blame]
/******************************************************************************
* Copyright (c) 2002, 2005 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.gmf.runtime.common.ui.services.parser;
/**
* This is a wrapper used for defining, setting, and retrieving flags that can
* be used for the parser operations that take a flags int as a parameter.
*
* @author chmahone, "unSet" method added by choang
*/
public final class ParserOptions {
private int flags;
/**
* Default constructor to initialize ParserOptions with no custom flags.
*/
public ParserOptions() {
flags = 0;
}
/**
* Constructor that takes flags in as a parameter.
*
* @param flags that describe how the text should be parsed. Some flags
* are defined in this class.
*/
public ParserOptions(int flags) {
this.flags = flags;
}
// Caution: When adding parser options be sure that there are
// no overlapping options. Some of the options are used by
// more than one parser.
/**
* Default. No parser options.
*/
public static final ParserOptions NONE = new ParserOptions(0);
// ListItemParser options
/**
* Display the visibility of the item.
*/
public static final ParserOptions VISIBILITY_STYLE_TEXT =
new ParserOptions(1 << 1);
/**
* Display the Stereotype.
*/
public static final ParserOptions STEREOTYPE_STYLE_TEXT =
new ParserOptions(1 << 2);
// NameParser options
/**
* Show parent name.
*/
public static final ParserOptions SHOW_PARENT_NAME =
new ParserOptions(1 << 3);
// OperationParser options
/**
* Show signature.
*/
public static final ParserOptions SHOW_SIGNATURE =
new ParserOptions(1 << 4);
/**
* Show type.
*/
public static final ParserOptions SHOW_TYPE = new ParserOptions(1 << 5);
/**
* Show alias.
*/
public static final ParserOptions SHOW_ALIAS = new ParserOptions(1 << 6);
/**
* Show that the element is derived.
*/
public static final ParserOptions SHOW_DERIVED = new ParserOptions(1 << 7);
// MessageParser options
/**
* Show number of the message.
*/
public static final ParserOptions SHOW_SEQUENCE_NUMBER = new ParserOptions(1 << 8);
// PatternsTemplateArgumentParser options
/**
* Show that there are bound arguments.
*/
public static final ParserOptions BIND_STYLE_TEXT = new ParserOptions(1 << 9);
/**
* Show the type.
*/
public static final ParserOptions TYPE_STYLE_TEXT = new ParserOptions(1 << 10);
/**
* Indicates that placeholders should be ignored - if there are no data, no
* placeholder will be generated. An example would be guillemets for the
* stereotype list. If there are no stereotypes, the guillemets would be the
* placeholder.
*/
public static final ParserOptions IGNORE_PLACEHOLDERS = new ParserOptions(1 << 11);
/**
* Indicates that message signatures should use the "<parameter name> = <value>" notation.
*/
public static final ParserOptions USE_PARAMETER_NAMES = new ParserOptions(1 << 12);
/**
* Returns the options as an int so they can be passed to operations.
* @return int the options in int form
*/
public int intValue() {
return flags;
}
/**
* Checks if the specified option is set in the flags supplied.
* @param flags int representing the flags
* @param option one of the defined ParserOptions
* @return boolean true if this option is set; false otherwise
*/
public static boolean isSet(int flags, ParserOptions option) {
if ((flags & option.flags) != 0)
return true;
return false;
}
/**
* Sets an option in this ParserOptions.
* @param option one of the defined ParserOptions
*/
public void set(ParserOptions option) {
flags = flags | option.flags;
}
/**
* UnSets an option in the this ParserOptions.
* @param option one of the defined ParserOptions
*/
public void unSet(ParserOptions option){
flags = flags &~ option.intValue();
}
}