/**
*
*/
package jp.ac.fit.asura.nao.misc;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* @author sey
*
*/
public class AttributesImpl {
List<String> names;
List<String> values;
public AttributesImpl() {
names = new ArrayList<String>(8);
values = new ArrayList<String>(8);
}
public AttributesImpl(int capacity) {
names = new ArrayList<String>(capacity);
values = new ArrayList<String>(capacity);
}
public AttributesImpl(Object name, Object value) {
names = new ArrayList<String>(4);
values = new ArrayList<String>(4);
names.add(name.toString());
values.add(value.toString());
}
public AttributesImpl(Object... attrs) {
names = new ArrayList<String>(1);
values = new ArrayList<String>(1);
if (attrs.length % 2 != 0)
throw new IllegalArgumentException("" + Arrays.toString(attrs));
for (int i = 0; i < attrs.length / 2; i++) {
names.add(attrs[2 * i].toString());
values.add(attrs[2 * i + 1].toString());
}
}
public void setAttribute(Object name, Object value) {
int i = names.indexOf(name);
if (i == -1)
addAttribute(name, value);
else
values.set(i, value.toString());
}
public void addAttribute(Object name, Object value) {
names.add(name.toString());
values.add(value.toString());
}
public int getLength() {
return names.size();
}
public String getLocalName(int index) {
return names.get(index);
}
public String getValue(int index) {
return values.get(index);
}
}