/******************************************************************************* * Copyright (c) 2004 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.wst.html.core.contentmodel; import java.lang.reflect.Field; import java.util.Arrays; import java.util.Collection; import java.util.Vector; import org.eclipse.wst.common.contentmodel.CMNode; /** * Factory for element declarations. */ final class ElementCollection extends DeclCollection implements org.eclipse.wst.html.core.HTML40Namespace.ElementName { // Element IDs private static class Ids { public static final int ID_A = 0; public static final int ID_ABBR = 1; public static final int ID_ACRONYM = 2; public static final int ID_ADDRESS = 3; public static final int ID_APPLET = 4; public static final int ID_AREA = 5; public static final int ID_B = 6; public static final int ID_BASE = 7; public static final int ID_BASEFONT = 8; public static final int ID_BDO = 9; public static final int ID_BIG = 10; public static final int ID_BLINK = 11; public static final int ID_BLOCKQUOTE = 12; public static final int ID_BODY = 13; public static final int ID_BR = 14; public static final int ID_BUTTON = 15; public static final int ID_CAPTION = 16; public static final int ID_CENTER = 17; public static final int ID_CITE = 18; public static final int ID_CODE = 19; public static final int ID_COL = 20; public static final int ID_COLGROUP = 21; public static final int ID_DD = 22; public static final int ID_DEL = 23; public static final int ID_DFN = 24; public static final int ID_DIR = 25; public static final int ID_DIV = 26; public static final int ID_DL = 27; public static final int ID_DT = 28; public static final int ID_EM = 29; public static final int ID_EMBED = 30; public static final int ID_FIELDSET = 31; public static final int ID_FONT = 32; public static final int ID_FORM = 33; public static final int ID_FRAME = 34; public static final int ID_FRAMESET = 35; public static final int ID_H1 = 36; public static final int ID_H2 = 37; public static final int ID_H3 = 38; public static final int ID_H4 = 39; public static final int ID_H5 = 40; public static final int ID_H6 = 41; public static final int ID_HEAD = 42; public static final int ID_HR = 43; public static final int ID_HTML = 44; public static final int ID_I = 45; public static final int ID_IFRAME = 46; public static final int ID_IMG = 47; public static final int ID_INPUT = 48; public static final int ID_INS = 49; public static final int ID_ISINDEX = 50; public static final int ID_KBD = 51; public static final int ID_LABEL = 52; public static final int ID_LEGEND = 53; public static final int ID_LI = 54; public static final int ID_LINK = 55; public static final int ID_MAP = 56; public static final int ID_MENU = 57; public static final int ID_META = 58; public static final int ID_NOEMBED = 59; public static final int ID_NOFRAMES = 60; public static final int ID_NOSCRIPT = 61; public static final int ID_OBJECT = 62; public static final int ID_OL = 63; public static final int ID_OPTGROUP = 64; public static final int ID_OPTION = 65; public static final int ID_P = 66; public static final int ID_PARAM = 67; public static final int ID_PRE = 68; public static final int ID_Q = 69; public static final int ID_S = 70; public static final int ID_SAMP = 71; public static final int ID_SCRIPT = 72; public static final int ID_SELECT = 73; public static final int ID_SMALL = 74; public static final int ID_SPAN = 75; public static final int ID_STRIKE = 76; public static final int ID_STRONG = 77; public static final int ID_STYLE = 78; public static final int ID_SUB = 79; public static final int ID_SUP = 80; public static final int ID_TABLE = 81; public static final int ID_TBODY = 82; public static final int ID_TD = 83; public static final int ID_TEXTAREA = 84; public static final int ID_TFOOT = 85; public static final int ID_TH = 86; public static final int ID_THEAD = 87; public static final int ID_TITLE = 88; public static final int ID_TR = 89; public static final int ID_TT = 90; public static final int ID_U = 91; public static final int ID_UL = 92; public static final int ID_VAR = 93; public static final int ID_MARQUEE = 94; public static final int ID_SSI_CONFIG = 95; public static final int ID_SSI_ECHO = 96; public static final int ID_SSI_EXEC = 97; public static final int ID_SSI_FSIZE = 98; public static final int ID_SSI_FLASTMOD = 99; public static final int ID_SSI_INCLUDE = 100; public static final int ID_SSI_PRINTENV = 101; public static final int ID_SSI_SET = 102; // <null for a declaration is a sign of // the target element is unknown. // -- 3/9/2001 edec = null; } return edec; } /** * @return com.ibm.sed.contentmodel.html.AttributeCollection */ public AttributeCollection getAttributeCollection() { return attributeCollection; } /** */ public final Collection getNamesOfBlock() { // P, DL, DIV, CENTER, NOSCRIPT, NOFRAMES, BLOCKQUOTE, FORM, ISINDEX, HR, // TABLE, FIELDSET, ADDRESS String[] blockMisc = {P, DL, DIV, CENTER, NOSCRIPT, NOFRAMES, BLOCKQUOTE, FORM, ISINDEX, HR, TABLE, FIELDSET, ADDRESS}; Vector names = new Vector(Arrays.asList(blockMisc)); // %heading; names.addAll(Arrays.asList(HEADING)); // %list; names.addAll(Arrays.asList(LIST)); // %preformatted; names.addAll(Arrays.asList(PREFORMATTED)); return names; } /** * %block;. * %block; is: * P | %heading; | %list; | %preformatted; | DL | DIV | CENTER | * NOSCRIPT | NOFRAMES | BLOCKQUOTE | FORM | ISINDEX | HR | * TABLE | FIELDSET | ADDRESS.
* @param group CMGroupImpl Return values. */ public final void getBlock(CMGroupImpl group) { if (group == null) return; getDeclarations(group, getNamesOfBlock().iterator()); } /** * Create element declarations and store them * into a CMGroupImpl instance. * @param group CMGroupImpl Return values. */ public final void getFlow(CMGroupImpl group) { if (group == null) return; getBlock(group); getInline(group); } /** * Create element declarations and store them into a CMGroupImpl * instance.
* @param group CMGroupImpl Return values. */ public final void getFontstyle(CMGroupImpl group) { if (group == null) return; getDeclarations(group, Arrays.asList(FONTSTYLE).iterator()); } /** * Create element declarations and store them into a CMGroupImpl * instance.
* @param group CMGroupImpl Return values. */ public final void getFormctrl(CMGroupImpl group) { if (group == null) return; getDeclarations(group, Arrays.asList(FORMCTL).iterator()); } /** * %heading;. * @param group CMGroupImpl Return values. */ public final void getHeading(CMGroupImpl group) { if (group == null) return; getDeclarations(group, Arrays.asList(HEADING).iterator()); } /** * Create element declarations and store them * into a CMGroupImpl instance. * @param group CMGroupImpl Return values. */ public final void getInline(CMGroupImpl group) { if (group == null) return; getFontstyle(group); getPhrase(group); getSpecial(group); getFormctrl(group); } /** * %list;. * @param group CMGroupImpl Return values. */ public final void getList(CMGroupImpl group) { if (group == null) return; getDeclarations(group, Arrays.asList(LIST).iterator()); } /** * Create element declarations and store them into a CMGroupImpl * instance.
* @param group CMGroupImpl Return values. */ public final void getPhrase(CMGroupImpl group) { if (group == null) return; getDeclarations(group, Arrays.asList(PHRASE).iterator()); } /** * %preformatted; * @param group CMGroupImpl Return values. */ public final void getPreformatted(CMGroupImpl group) { if (group == null) return; getDeclarations(group, Arrays.asList(PREFORMATTED).iterator()); } /** * Create element declarations and store them into a CMGroupImpl * instance.
* @param group CMGroupImpl Return values. */ public final void getSpecial(CMGroupImpl group) { if (group == null) return; getDeclarations(group, Arrays.asList(SPECIAL).iterator()); } }