| 
 | 
 | 
 | 
 | 
 */  | 
 | 
/*  | 
 | 
 * Licensed to the Apache Software Foundation (ASF) under one or more  | 
 | 
 * contributor license agreements.  See the NOTICE file distributed with  | 
 | 
 * this work for additional information regarding copyright ownership.  | 
 | 
 * The ASF licenses this file to You under the Apache License, Version 2.0  | 
 | 
 * (the "License"); you may not use this file except in compliance with  | 
 | 
 * the License.  You may obtain a copy of the License at  | 
 | 
 *  | 
 | 
 *      http://www.apache.org/licenses/LICENSE-2.0  | 
 | 
 *  | 
 | 
 * Unless required by applicable law or agreed to in writing, software  | 
 | 
 * distributed under the License is distributed on an "AS IS" BASIS,  | 
 | 
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  | 
 | 
 * See the License for the specific language governing permissions and  | 
 | 
 * limitations under the License.  | 
 | 
 */  | 
 | 
 | 
 | 
package com.sun.org.apache.xerces.internal.util;  | 
 | 
 | 
 | 
import com.sun.org.apache.xerces.internal.impl.Constants;  | 
 | 
import com.sun.org.apache.xerces.internal.xni.XMLAttributes;  | 
 | 
import org.xml.sax.AttributeList;  | 
 | 
import org.xml.sax.ext.Attributes2;  | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 */  | 
 | 
@SuppressWarnings("deprecation") | 
 | 
public final class AttributesProxy  | 
 | 
    implements AttributeList, Attributes2 { | 
 | 
 | 
 | 
    //  | 
 | 
    // Data  | 
 | 
    //  | 
 | 
 | 
 | 
      | 
 | 
    private XMLAttributes fAttributes;  | 
 | 
 | 
 | 
    //  | 
 | 
    // Constructors  | 
 | 
    //  | 
 | 
 | 
 | 
    public AttributesProxy(XMLAttributes attributes) { | 
 | 
        fAttributes = attributes;  | 
 | 
    }  | 
 | 
 | 
 | 
    //  | 
 | 
    // Public methods  | 
 | 
    //  | 
 | 
 | 
 | 
      | 
 | 
    public void setAttributes(XMLAttributes attributes) { | 
 | 
        fAttributes = attributes;  | 
 | 
    } // setAttributes(XMLAttributes)  | 
 | 
 | 
 | 
    public XMLAttributes getAttributes() { | 
 | 
        return fAttributes;  | 
 | 
    }  | 
 | 
 | 
 | 
    /*  | 
 | 
     * Attributes methods  | 
 | 
     */  | 
 | 
 | 
 | 
    public int getLength() { | 
 | 
        return fAttributes.getLength();  | 
 | 
    }  | 
 | 
 | 
 | 
    public String getQName(int index) { | 
 | 
        return fAttributes.getQName(index);  | 
 | 
    }  | 
 | 
 | 
 | 
    public String getURI(int index) { | 
 | 
        // This hides the fact that internally we use null instead of empty string  | 
 | 
          | 
 | 
        String uri = fAttributes.getURI(index);  | 
 | 
        return uri != null ? uri : XMLSymbols.EMPTY_STRING;  | 
 | 
    }  | 
 | 
 | 
 | 
    public String getLocalName(int index) { | 
 | 
        return fAttributes.getLocalName(index);  | 
 | 
    }  | 
 | 
 | 
 | 
    public String getType(int i) { | 
 | 
        return fAttributes.getType(i);  | 
 | 
    }  | 
 | 
 | 
 | 
    public String getType(String name) { | 
 | 
        return fAttributes.getType(name);  | 
 | 
    }  | 
 | 
 | 
 | 
    public String getType(String uri, String localName) { | 
 | 
        return uri.equals(XMLSymbols.EMPTY_STRING) ?  | 
 | 
                fAttributes.getType(null, localName) :  | 
 | 
                    fAttributes.getType(uri, localName);  | 
 | 
    }  | 
 | 
 | 
 | 
    public String getValue(int i) { | 
 | 
        return fAttributes.getValue(i);  | 
 | 
    }  | 
 | 
 | 
 | 
    public String getValue(String name) { | 
 | 
        return fAttributes.getValue(name);  | 
 | 
    }  | 
 | 
 | 
 | 
    public String getValue(String uri, String localName) { | 
 | 
        return uri.equals(XMLSymbols.EMPTY_STRING) ?  | 
 | 
                fAttributes.getValue(null, localName) :  | 
 | 
                    fAttributes.getValue(uri, localName);  | 
 | 
    }  | 
 | 
 | 
 | 
    public int getIndex(String qName) { | 
 | 
        return fAttributes.getIndex(qName);  | 
 | 
    }  | 
 | 
 | 
 | 
    public int getIndex(String uri, String localPart) { | 
 | 
        return uri.equals(XMLSymbols.EMPTY_STRING) ?  | 
 | 
                fAttributes.getIndex(null, localPart) :  | 
 | 
                    fAttributes.getIndex(uri, localPart);  | 
 | 
    }  | 
 | 
 | 
 | 
    /*  | 
 | 
     * Attributes2 methods  | 
 | 
     */  | 
 | 
 | 
 | 
    public boolean isDeclared(int index) { | 
 | 
        if (index < 0 || index >= fAttributes.getLength()) { | 
 | 
            throw new ArrayIndexOutOfBoundsException(index);  | 
 | 
        }  | 
 | 
        return Boolean.TRUE.equals(  | 
 | 
            fAttributes.getAugmentations(index).getItem(  | 
 | 
            Constants.ATTRIBUTE_DECLARED));  | 
 | 
    }  | 
 | 
 | 
 | 
    public boolean isDeclared(String qName) { | 
 | 
        int index = getIndex(qName);  | 
 | 
        if (index == -1) { | 
 | 
            throw new IllegalArgumentException(qName);  | 
 | 
        }  | 
 | 
        return Boolean.TRUE.equals(  | 
 | 
            fAttributes.getAugmentations(index).getItem(  | 
 | 
            Constants.ATTRIBUTE_DECLARED));  | 
 | 
    }  | 
 | 
 | 
 | 
    public boolean isDeclared(String uri, String localName) { | 
 | 
        int index = getIndex(uri, localName);  | 
 | 
        if (index == -1) { | 
 | 
            throw new IllegalArgumentException(localName);  | 
 | 
        }  | 
 | 
        return Boolean.TRUE.equals(  | 
 | 
            fAttributes.getAugmentations(index).getItem(  | 
 | 
            Constants.ATTRIBUTE_DECLARED));  | 
 | 
    }  | 
 | 
 | 
 | 
    public boolean isSpecified(int index) { | 
 | 
        if (index < 0 || index >= fAttributes.getLength()) { | 
 | 
            throw new ArrayIndexOutOfBoundsException(index);  | 
 | 
        }  | 
 | 
        return fAttributes.isSpecified(index);  | 
 | 
    }  | 
 | 
 | 
 | 
    public boolean isSpecified(String qName) { | 
 | 
        int index = getIndex(qName);  | 
 | 
        if (index == -1) { | 
 | 
            throw new IllegalArgumentException(qName);  | 
 | 
        }  | 
 | 
        return fAttributes.isSpecified(index);  | 
 | 
    }  | 
 | 
 | 
 | 
    public boolean isSpecified(String uri, String localName) { | 
 | 
        int index = getIndex(uri, localName);  | 
 | 
        if (index == -1) { | 
 | 
            throw new IllegalArgumentException(localName);  | 
 | 
        }  | 
 | 
        return fAttributes.isSpecified(index);  | 
 | 
    }  | 
 | 
 | 
 | 
    /*  | 
 | 
     * AttributeList methods  | 
 | 
     */  | 
 | 
 | 
 | 
    public String getName(int i) { | 
 | 
        return fAttributes.getQName(i);  | 
 | 
    }  | 
 | 
 | 
 | 
}  |