/*
* The Apache Software License, Version 1.1
*
*
* Copyright (c) 1999-2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation and was
* originally based on software copyright (c) 1999, International
* Business Machines, Inc., http://www.apache.org. For more
* information on the Apache Software Foundation, please see
* .
*/
package com.sun.org.apache.xerces.internal.impl.xs;
import com.sun.org.apache.xerces.internal.impl.dv.ValidatedInfo;
import com.sun.org.apache.xerces.internal.xs.ShortList;
import com.sun.org.apache.xerces.internal.xs.XSAttributeDeclaration;
import com.sun.org.apache.xerces.internal.xs.XSAttributeUse;
import com.sun.org.apache.xerces.internal.xs.XSConstants;
import com.sun.org.apache.xerces.internal.xs.XSNamespaceItem;
/**
* The XML representation for an attribute use
* schema component is a local element information item
*
* @author Sandy Gao, IBM
* @version $Id: XSAttributeUseImpl.java,v 1.5 2003/11/12 23:17:33 sandygao Exp $
*/
public class XSAttributeUseImpl implements XSAttributeUse {
// the referred attribute decl
public XSAttributeDecl fAttrDecl = null;
// use information: SchemaSymbols.USE_OPTIONAL, REQUIRED, PROHIBITED
public short fUse = SchemaSymbols.USE_OPTIONAL;
// value constraint type: default, fixed or !specified
public short fConstraintType = XSConstants.VC_NONE;
// value constraint value
public ValidatedInfo fDefault = null;
public void reset(){
fDefault = null;
fAttrDecl = null;
fUse = SchemaSymbols.USE_OPTIONAL;
fConstraintType = XSConstants.VC_NONE;
}
/**
* Get the type of the object, i.e ELEMENT_DECLARATION.
*/
public short getType() {
return XSConstants.ATTRIBUTE_USE;
}
/**
* The name
of this XSObject
depending on the
* XSObject
type.
*/
public String getName() {
return null;
}
/**
* The namespace URI of this node, or null
if it is
* unspecified. defines how a namespace URI is attached to schema
* components.
*/
public String getNamespace() {
return null;
}
/**
* {required} determines whether this use of an attribute declaration
* requires an appropriate attribute information item to be present, or
* merely allows it.
*/
public boolean getRequired() {
return fUse == SchemaSymbols.USE_REQUIRED;
}
/**
* {attribute declaration} provides the attribute declaration itself,
* which will in turn determine the simple type definition used.
*/
public XSAttributeDeclaration getAttrDeclaration() {
return fAttrDecl;
}
/**
* Value Constraint: one of default, fixed.
*/
public short getConstraintType() {
return fConstraintType;
}
/**
* Value Constraint: The actual value (with respect to the {type
* definition}).
*/
public String getConstraintValue() {
// REVISIT: SCAPI: what's the proper representation
return getConstraintType() == XSConstants.VC_NONE ?
null :
fDefault.actualValue.toString();
}
/**
* @see com.sun.org.apache.xerces.internal.xs.XSObject#getNamespaceItem()
*/
public XSNamespaceItem getNamespaceItem() {
return null;
}
public Object getActualVC() {
return fDefault.actualValue;
}
public short getActualVCType() {
return fDefault.actualValueType;
}
public ShortList getItemValueTypes() {
return fDefault.itemValueTypes;
}
} // class XSAttributeUseImpl