package org.openntf.domino.nsfdata.structs; import java.util.Collections; import java.util.EnumSet; import java.util.Set; /** * Corresponds to DESIGN_FLAG_* from stdnames.h * * @author jgallagher * */ public enum DesignFlag { ADD('A'), ANTIFOLDER('a'), BACKGROUND_FILTER('B'), INITBYDESIGNONLY('b'), NO_COMPOSE('C'), CALENDAR_VIEW('c'), NO_QUERY('D'), DEFAULT_DESIGN( 'd'), MAIL_FILTER('E'), PUBLICANTIFOLDER('e'), FOLDER_VIEW('F'), V4AGENT('f'), VIEWMAP('G'), FILE('g'), OTHER_DLG('H'), JAVASCRIPT_LIBRARY( 'h'), V4PASTE_AGENT('I'), IMAGE_RESOURCE('i'), JAVA_AGENT('J'), JAVA_AGENT_WITH_SOURCE('j'), MOBILE_DIGEST('K'), XSPPAGE('K'), CONNECTION_RESOURCE( 'k'), LOTUSSCRIPT_AGENT('L'), DELETED_DOCS('l'), QUERY_MACRO_FILtER('M'), SITEMAP('m'), NEW('N'), HIDE_FROM_NOTES('n'), QUERY_V4_OBJECT( 'O'), PRIVATE_STOREDISK('o'), PRESERVE('P'), PRIVATE_1STUSE('p'), QUERY_FILTER('Q'), AGENT_SHOWINSEARCH('q'), REPLACE_SPECIAL( 'R'), PROPAGATE_NOCHANGE('r'), V4BACKGROUND_MACRO('S'), SCRIPTLIB('s'), VIEW_CATEGORIZED('T'), DATABASESCRIPT('t'), SUBFORM('U'), AGENT_RUNASWEBUSER( 'u'), AGENT_RUNASINVOKER('u'), PRIVATE_IN_DB('V'), IMAGE_WELL('v'), WEBPAGE('W'), HIDE_FROM_WEB('w'), V4AGENT_DATA('X'), SUBFORM_NORENDER( 'x'), NO_MENU('Y'), SACTIONS('y'), MULTILINGUAL_PRESERVE_HIDDEN('Z'), SERVLET('z'), ACCESSVIEW('z'), FRAMESET('#'), MULTILINGUAL_ELEMENT( '!'), JAVA_RESOURCE('@'), STYLESHEET_RESOURCE('='), WEBSERVICE('{'), SHARED_COL('^'), HIDE_FROM_MOBILE('1'), HIDE_FROM_PORTAL( '2'), PROPFILE('2'), HIDE_FROM_V3('3'), HIDE_FROM_V4('4'), HIDE_FROM_V5('5'), HIDE_FROM_V6('6'), HIDE_FROM_V7('7'), HIDE_FROM_V8( '8'), HIDE_FROM_V9('9'), MULTILINGUAL_HIDE('0'), WEBHYBRIDDB('%'), READONLY('&'), NEEDSREFRESH('$'), HTMLFILE('>'), JSP('<'), QUERYVIEW( '<'), DIRECTORY('/'), PRINTFORM('?'), HIDEFROMDESIGNLIST('~'), HIDEONLYFROMDESIGNLIST('}'), COMPOSITE_APP('|'), COMPOSITE_DEF( ':'), XSP_CC(';'), JS_SERVER('.'), STYLEKIT('`'), WIDGET('_'), JAVAFILE('['); public static final Set<DesignFlag> FLAGS_SUBCLASS = Collections.unmodifiableSet(valuesOf("UW#yi@GFXstmzk=K;g%[]{^,")); public static final Set<DesignFlag> FLAGS_DISTINGUISH = Collections.unmodifiableSet(valuesOf("nw123456789")); private final char character_; private DesignFlag(final char character) { character_ = character; } public char getCharacter() { return character_; } public static Set<DesignFlag> valuesOf(final char character) { Set<DesignFlag> result = EnumSet.noneOf(DesignFlag.class); for (DesignFlag flag : values()) { if (character == flag.getCharacter()) { result.add(flag); } } if (result.isEmpty()) { throw new IllegalArgumentException("Unknown flag character '" + character + "'"); } else { return result; } } public static Set<DesignFlag> valuesOf(final String pattern) { Set<DesignFlag> result = EnumSet.noneOf(DesignFlag.class); for (int i = 0; i < pattern.length(); i++) { result.addAll(valuesOf(pattern.charAt(i))); } return result; } }