diff options
Diffstat (limited to 'bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMDescriptorImpl.java')
-rw-r--r-- | bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMDescriptorImpl.java | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMDescriptorImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMDescriptorImpl.java new file mode 100644 index 0000000000..7026c24839 --- /dev/null +++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMDescriptorImpl.java @@ -0,0 +1,75 @@ +/******************************************************************************* + * 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.css.core.internal.metamodelimpl; + +import java.util.Iterator; + +import org.eclipse.wst.css.core.internal.metamodel.CSSMMDescriptor; +import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode; + + +class CSSMMDescriptorImpl extends CSSMMNodeImpl implements CSSMMDescriptor { + + + public CSSMMDescriptorImpl() { + super(); + } + + public String getType() { + return TYPE_DESCRIPTOR; + } + + public String getName() { + String name = getAttribute(ATTR_NAME); + if (name != null) { + return name.toLowerCase(); + } + else { + return null; + } + } + + /* + * @see CSSMMNodeImpl#canContain(CSSMMNode) + */ + boolean canContain(CSSMMNode child) { + if (child == null) { + return false; + } + String type = child.getType(); + return (type == TYPE_NUMBER || type == TYPE_KEYWORD || type == TYPE_FUNCTION || type == TYPE_CONTAINER || type == TYPE_STRING || type == TYPE_SEPARATOR); + } + + /* + * @see CSSMMNodeImpl#getError() + */ + short getError() { + if (getName() == null) { + return MetaModelErrors.ERROR_NOT_DEFINED; + } + else if (getChildCount() == 0) { + return MetaModelErrors.ERROR_NO_CHILD; + } + else { + return MetaModelErrors.NO_ERROR; + } + } + + /* + * @see CSSMMDescriptor#getValues() + */ + public Iterator getValues() { + ValueCollector collector = new ValueCollector(); + collector.apply(this); + return collector.getNodes(); + } + +}
\ No newline at end of file |