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