| /******************************************************************************* |
| * 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.internal.contentmodel; |
| |
| |
| |
| import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; |
| import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; |
| import org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList; |
| |
| /** |
| */ |
| class CMGroupImpl extends CMContentImpl implements CMGroup { |
| |
| private int operator = CMGroup.SEQUENCE; |
| private CMNodeListImpl children = null; |
| |
| /** |
| * CMGroupImpl constructor comment. |
| */ |
| public CMGroupImpl(int op, int minOccur, int maxOccur) { |
| super(null, minOccur, maxOccur); |
| switch (op) { |
| case CMGroup.ALL : |
| case CMGroup.CHOICE : |
| case CMGroup.SEQUENCE : |
| operator = op; |
| break; |
| default : |
| // should warn. |
| break; |
| } |
| } |
| |
| /** |
| * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNode |
| * @param org.eclipse.wst.xml.core.internal.contentmodel.CMNode |
| */ |
| protected CMNode appendChild(CMNode child) { |
| if (child == null) |
| return null; |
| if (children == null) |
| children = new CMNodeListImpl(); |
| return children.appendNode(child); |
| } |
| |
| /** |
| * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList |
| */ |
| public CMNodeList getChildNodes() { |
| return children; |
| } |
| |
| /** |
| * getNodeType method |
| * @return int |
| * |
| * Returns one of : |
| * ELEMENT_DECLARATION, ATTRIBUTE_DECLARATION, GROUP, ENTITY_DECLARATION. |
| */ |
| public int getNodeType() { |
| return CMNode.GROUP; |
| } |
| |
| /** |
| * getOperation method |
| * @return int |
| * |
| * Returns one of : |
| * ALONE (a), SEQUENCE (a,b), CHOICE (a|b), ALL (a&b). |
| */ |
| public int getOperator() { |
| return operator; |
| } |
| } |