package gw.lang.annotation; import gw.lang.UnstableAPI; import gw.lang.reflect.IScriptabilityModifier; import gw.lang.parser.ScriptabilityModifiers; /** * Copyright 2010 Guidewire Software, Inc. */ @UnstableAPI public enum ScriptabilityModifier { HIDDEN("hidden", null), ALL("all", ScriptabilityModifiers.SCRIPTABLE), EXTERNAL("external", ScriptabilityModifiers.SCRIPTABLE_EXTERNAL), UI("ui", ScriptabilityModifiers.SCRIPTABLE_UI), RULES("rules", ScriptabilityModifiers.SCRIPTABLE_RULES), WORKFLOW("workflow", ScriptabilityModifiers.SCRIPTABLE_WORKFLOW), WEBSERVICE("webservice", ScriptabilityModifiers.SCRIPTABLE_WEBSERVICE); private IScriptabilityModifier _associatedModifier; private String _name; ScriptabilityModifier(String name, IScriptabilityModifier modifier) { _name = name; _associatedModifier = modifier; } public IScriptabilityModifier getModifier() { return _associatedModifier; } public String getName() { return _name; } public boolean isVisible( IScriptabilityModifier constraint) { if (constraint == null) { return true; } if (_associatedModifier == null) { return false; } else { return _associatedModifier.satisfiesConstraint(constraint); } } }