blob: fe302afb9caa75e9c76ce25e2d6acae3a57ae8c8 [file] [log] [blame]
nitind958d79a2004-11-23 19:23:00 +00001/*******************************************************************************
2 * Copyright (c) 2004 IBM Corporation and others.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
7 *
8 * Contributors:
9 * IBM Corporation - initial API and implementation
10 *******************************************************************************/
11package org.eclipse.wst.html.core.contentmodel;
12
13
14
15import java.util.Arrays;
16
nitind958d79a2004-11-23 19:23:00 +000017import org.eclipse.wst.html.core.HTML40Namespace;
david_williamsc06c86f2005-03-18 18:23:41 +000018import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
19import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
nitind958d79a2004-11-23 19:23:00 +000020
21/**
22 * BDO.
23 */
24final class HedBDO extends HedInlineContainer {
25
26 /**
27 */
28 public HedBDO(ElementCollection collection) {
29 super(HTML40Namespace.ElementName.BDO, collection);
30 // CORRECT_EMPTY - GROUP_COMPACT
31 correctionType = CORRECT_EMPTY;
32 }
33
34 /**
35 * %coreattrs;
36 * (lang %LanguageCode; #IMPLIED)
37 * (dir (ltr|rtl) #REQUIRED) ... should be defined locally.
38 */
39 protected void createAttributeDeclarations() {
40 if (attributes != null)
41 return; // already created.
42 if (attributeCollection == null)
43 return; // fatal
44
45 attributes = new CMNamedNodeMapImpl();
46
47 // %coreattrs;
48 attributeCollection.getCore(attributes);
49
50 String[] names = {HTML40Namespace.ATTR_NAME_LANG};
51 attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
52
53 // (dir (ltr|rtl) #REQUIRED) ... should be defined locally.
54 HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
55 String[] values = {HTML40Namespace.ATTR_VALUE_LTR, HTML40Namespace.ATTR_VALUE_RTL};
56 atype.setEnumValues(values);
57
58 HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_DIR, atype, CMAttributeDeclaration.REQUIRED);
59 attributes.putNamedItem(HTML40Namespace.ATTR_NAME_DIR, attr);
60 }
61}