blob: e42e42121eb82b1a8c7edc7b054e6599f2c0cb81 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2001, 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.dtd.core.internal.saxparser;
import java.util.Enumeration;
import java.util.Vector;
public class Attlist extends BaseNode {
Vector attDefs = new Vector();
/**
* Constructor.
*
* @param name
* This attribute list's name; this value is also known as the
* Element type.
*/
public Attlist(String name, String ownerDTD) {
this(name, ownerDTD, null, null);
}
public Attlist(String name, String ownerDTD, String comment, ErrorMessage errorMessage) {
super(name, ownerDTD, comment, errorMessage);
}
/**
* Adds the specified attribute definition to the end of this attribute
* list .
*
* @param attDef
* Attribute definition to add to this atribute list.
* @return =true if the attribute definition does not already exist in
* this attribute list; otherwise, =false.
* @see #elementAt
* @see #getAttDef
* @see #contains
* @see #size
*/
public boolean addElement(AttNode attDef) {
if (contains(attDef.name))
return false;
this.attDefs.addElement(attDef);
return true;
}
/**
* Returns the attribute definition at the specified <var>index</var> in
* this attribute list
*
* @param index
* Index into this list of attribute definitions.
* @return Attribute definition at the specified index, or <var>null</var>
* if an invalid index.
* @see #addElement
* @see #getAttDef
* @see #contains
* @see #size
*/
public AttNode elementAt(int index) {
return (AttNode) this.attDefs.elementAt(index);
}
/**
* Returns the attribute definition that matches the specified attribute
* definition name in this attribute list.
*
* @param attDefName
* Attribute definition name to match in this attribute list.
* @return The matching attribute definition, or <var>null</var> if the
* attribute is not currently defined.
* @see #addElement
* @see #elementAt
* @see #contains
* @see #size
* @see #elements
*/
public AttNode getAttDef(String attDefName) {
for (int i = 0; i < size(); i++) {
AttNode ad = elementAt(i);
if (attDefName.equals(ad.name))
return ad;
}
return null;
}
/**
* Returns whether the specified attribute definition name is currently
* defined in this attribute list.
*
* @param attDefName
* Attribute definition name to match in this attribute list.
* @return =true if <var>attDefName</var> is defined; otherwise, =false.
* @see #addElement
* @see #elementAt
* @see #getAttDef
* @see #size
* @see #elements
*/
public boolean contains(String attDefName) {
return null != getAttDef(attDefName);
}
/**
* Returns the number of attribute definitions in this attribute list.
*
* @return Number of attribute list definitions, or <var>null</var> if no
* definitions defined.
* @see #addElement
* @see #elementAt
* @see #getAttDef
* @see #contains
*/
public int size() {
return this.attDefs.size();
}
/**
* Returns an enumeration of all attribute definitions in this attribute
* list.
*
* @return An enumeration of all attribute definitions, or <var>null</var>
* if none specified.
* @see #addElement
* @see #elementAt
* @see #getAttDef
* @see #contains
* @see #size
*/
public Enumeration elements() {
return this.attDefs.elements();
}
void setAttDefs(Vector attrs) {
attDefs = attrs;
}
}