1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28 package com.sun.star.xml.security.uno; 29 30 import java.util.Vector; 31 import com.sun.star.xml.sax.XAttributeList; 32 33 /** 34 * Class to construct an attribute list, and provide a XAttributeList 35 * interface. 36 * 37 * @author Michael Mi 38 * @version %I%, %G% 39 */ 40 public class AttributeListHelper implements com.sun.star.xml.sax.XAttributeList 41 { 42 private Vector m_AttributeList; 43 44 public AttributeListHelper() 45 { 46 m_AttributeList = new Vector(); 47 } 48 49 public void clear() 50 { 51 m_AttributeList.removeAllElements(); 52 } 53 54 public void setAttribute(String name, String type, String value) 55 { 56 int nLength = m_AttributeList.size(); 57 boolean bFound = false; 58 59 for (int i=0; i<nLength; ++i) 60 { 61 if (getNameByIndex((short)i).equals(name)) 62 { 63 Vector attribute = (Vector)m_AttributeList.get(i); 64 attribute.setElementAt(type,1); 65 attribute.setElementAt(value,2); 66 bFound = true; 67 break; 68 } 69 } 70 71 if (!bFound) 72 { 73 Vector attribute = new Vector(); 74 attribute.addElement(name); 75 attribute.addElement(type); 76 attribute.addElement(value); 77 m_AttributeList.addElement(attribute); 78 } 79 } 80 81 public String getAttributeItem(short index, int itemIndex) 82 { 83 String item = null; 84 85 if (index>=0 && index<getLength()) 86 { 87 Vector attribute = (Vector)m_AttributeList.get(index); 88 item = (String)(attribute.get(itemIndex)); 89 } 90 91 return item; 92 } 93 94 /* XAttributeList */ 95 public short getLength() 96 { 97 return (short)m_AttributeList.size(); 98 } 99 100 public String getNameByIndex(short i) 101 { 102 return getAttributeItem(i, 0); 103 } 104 105 public String getTypeByIndex(short i) 106 { 107 return getAttributeItem(i, 1); 108 } 109 110 public String getValueByIndex(short i) 111 { 112 return getAttributeItem(i, 2); 113 } 114 115 public String getTypeByName(String aName) 116 { 117 int nLength = m_AttributeList.size(); 118 String type = null; 119 120 for (int i=0; i<nLength; ++i) 121 { 122 if (getNameByIndex((short)i).equals(aName)) 123 { 124 type = getTypeByIndex((short)i); 125 break; 126 } 127 } 128 129 return type; 130 } 131 132 public String getValueByName(String aName) 133 { 134 int nLength = m_AttributeList.size(); 135 String value = null; 136 137 for (int i=0; i<nLength; ++i) 138 { 139 if (getNameByIndex((short)i).equals(aName)) 140 { 141 value = getValueByIndex((short)i); 142 break; 143 } 144 } 145 return value; 146 } 147 } 148 149