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 }