xref: /trunk/main/xmlsecurity/tools/uno/AttributeListHelper.java (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
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