001 /*
002 * To change this template, choose Tools | Templates
003 * and open the template in the editor.
004 */
005
006 package org.util.xml.element;
007
008 import java.util.ArrayList;
009
010 /**
011 *
012 * @author masaru
013 */
014 public class Attributes {
015
016 ArrayList<Attribute> attribute_list_;
017
018 public Attributes() {
019 attribute_list_ = new ArrayList<Attribute>();
020 }
021 public Attributes(Attribute... list) {
022 this();
023 for(int i=0;i<list.length;i++)
024 add(list[i]);
025 }
026 /**
027 * lowest method of add
028 * @param attribute
029 */
030 public void add(Attribute attribute) {
031 attribute_list_.add(attribute);
032 }
033 public void add(String name, String value) {
034 attribute_list_.add(new Attribute(name, value));
035 }
036 public void set(Attribute new_attribute) {
037 Attribute attribute = get(new_attribute.getName());
038 if(attribute==null) add(new_attribute);
039 else attribute.setValue(new_attribute.getValue());
040 }
041 public void set(String name, String value) {
042 set(new Attribute(name, value));
043 }
044
045 public int size() {
046 return attribute_list_.size();
047 }
048 public Attribute get(int index) {
049 return attribute_list_.get(index);
050 }
051 public Attribute get(String name) {
052 for(int i=0;i<attribute_list_.size();i++) {
053 Attribute attribute = attribute_list_.get(i);
054 if(attribute.getName().equals(name))
055 return attribute;
056 }
057 return null;
058 }
059 public String getValue(String name, String return_if_return_value_is_null) {
060 for(int i=0;i<attribute_list_.size();i++)
061 if(attribute_list_.get(i).getName().toLowerCase().equals(name.toLowerCase()))
062 return attribute_list_.get(i).getValue();
063 return return_if_return_value_is_null;
064 }
065 public String getValue(String attribute_name) {
066 return getValue(attribute_name, null);
067 }
068
069 public String toString() {
070 if(attribute_list_.size()==0) return "";
071 StringBuffer sb = new StringBuffer(attribute_list_.get(0).toString());
072 for(int i=1;i<attribute_list_.size();i++) {
073 sb.append(" ").append(attribute_list_.get(i));
074 }
075 return sb.toString();
076 }
077
078 public static final Attributes EmptySet = new Attributes(){
079
080 public void add(Attribute attribute){}
081 public Attribute get(int index) {
082 return null;
083 }
084 public String getValue(String name) {
085 return null;
086 }
087 };
088 }