xref: /AOO41X/main/xmlsecurity/tools/uno/AttributeListHelper.java (revision db8598795e2025b89968fa208f4cf0f9125a6f19)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 package com.sun.star.xml.security.uno;
25 
26 import java.util.Vector;
27 import com.sun.star.xml.sax.XAttributeList;
28 
29 /**
30  * Class to construct an attribute list, and provide a XAttributeList
31  * interface.
32  *
33  * @author      Michael Mi
34  * @version     %I%, %G%
35  */
36 public class AttributeListHelper implements com.sun.star.xml.sax.XAttributeList
37 {
38     private Vector m_AttributeList;
39 
AttributeListHelper()40     public AttributeListHelper()
41     {
42         m_AttributeList = new Vector();
43     }
44 
clear()45     public void clear()
46     {
47         m_AttributeList.removeAllElements();
48     }
49 
setAttribute(String name, String type, String value)50     public void setAttribute(String name, String type, String value)
51     {
52         int nLength = m_AttributeList.size();
53         boolean bFound = false;
54 
55         for (int i=0; i<nLength; ++i)
56         {
57             if (getNameByIndex((short)i).equals(name))
58             {
59                 Vector attribute = (Vector)m_AttributeList.get(i);
60                 attribute.setElementAt(type,1);
61                 attribute.setElementAt(value,2);
62                 bFound = true;
63                 break;
64             }
65         }
66 
67         if (!bFound)
68         {
69             Vector attribute = new Vector();
70             attribute.addElement(name);
71             attribute.addElement(type);
72             attribute.addElement(value);
73             m_AttributeList.addElement(attribute);
74         }
75     }
76 
getAttributeItem(short index, int itemIndex)77     public String getAttributeItem(short index, int itemIndex)
78     {
79         String item = null;
80 
81         if (index>=0 && index<getLength())
82         {
83             Vector attribute = (Vector)m_AttributeList.get(index);
84             item = (String)(attribute.get(itemIndex));
85         }
86 
87         return item;
88     }
89 
90     /* XAttributeList */
getLength()91     public short getLength()
92     {
93         return (short)m_AttributeList.size();
94     }
95 
getNameByIndex(short i)96     public String getNameByIndex(short i)
97     {
98         return getAttributeItem(i, 0);
99     }
100 
getTypeByIndex(short i)101     public String getTypeByIndex(short i)
102     {
103         return getAttributeItem(i, 1);
104     }
105 
getValueByIndex(short i)106     public String getValueByIndex(short i)
107     {
108         return getAttributeItem(i, 2);
109     }
110 
getTypeByName(String aName)111     public String getTypeByName(String aName)
112     {
113         int nLength = m_AttributeList.size();
114         String type = null;
115 
116         for (int i=0; i<nLength; ++i)
117         {
118             if (getNameByIndex((short)i).equals(aName))
119             {
120                 type = getTypeByIndex((short)i);
121                 break;
122             }
123         }
124 
125         return type;
126     }
127 
getValueByName(String aName)128     public String getValueByName(String aName)
129     {
130         int nLength = m_AttributeList.size();
131         String value = null;
132 
133         for (int i=0; i<nLength; ++i)
134         {
135             if (getNameByIndex((short)i).equals(aName))
136             {
137                 value = getValueByIndex((short)i);
138                 break;
139             }
140         }
141         return value;
142     }
143 }
144 
145