/*******************************************************************************
 *  Copyright (c) 2011  Oracle. 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: 
 *  	Oracle - initial API and implementation
 *******************************************************************************/
package org.eclipse.jpt.jaxb.core.xsd;

import org.eclipse.xsd.XSDAttributeDeclaration;
import org.eclipse.xsd.XSDAttributeUse;


public class XsdAttributeUse
		extends XsdComponent<XSDAttributeUse> {
	
	
	XsdAttributeUse(XSDAttributeUse xsdAttributeUse) {
		super(xsdAttributeUse);
	}
	
	
	public XsdAttributeDeclaration getAttributeDeclaration() {
		XSDAttributeDeclaration xsdAttribute = getXSDComponent().getAttributeDeclaration();
		return (xsdAttribute == null) ? null : (XsdAttributeDeclaration) XsdUtil.getAdapter(xsdAttribute);
	}
}
