001    package toolbus;
002    
003    import java.util.Iterator;
004    import java.util.LinkedList;
005    import java.util.List;
006    
007    import toolbus.atom.Atom;
008    
009    public class AtomList implements Iterable<Atom>{
010            private final List<Atom> elements;
011            
012            public AtomList(){
013                    elements = new LinkedList<Atom>();
014            }
015            
016            public AtomList(Atom a){
017                    elements = new LinkedList<Atom>();
018                    elements.add(a);
019            }
020            
021            private void addAll(AtomList atomList){
022                    elements.addAll(atomList.elements);
023            }
024            
025            public AtomList union(AtomList atomList){
026                    AtomList r = new AtomList();
027                    
028                    r.addAll(this);
029                    r.addAll(atomList);
030                    
031                    return r;
032            }
033            
034            public Iterator<Atom> iterator(){
035                    return elements.iterator();
036            }
037            
038            public int size(){
039                    return elements.size();
040            }
041            
042            public String toString(){
043                    String sep = "";
044                    
045                    String s = "{";
046                    
047                    Iterator<Atom> elementsIterator = elements.iterator();
048                    while(elementsIterator.hasNext()){
049                            Atom a = elementsIterator.next();
050                            
051                            s += sep + a.toString();
052                            sep = ", ";
053                    }
054                    s += "}";
055                    
056                    return s;
057            }
058    }