LatexListVo.java
01 /* This file is part of the project "Hilbert II" - http://www.qedeq.org
02  *
03  * Copyright 2000-2013,  Michael Meyling <mime@qedeq.org>.
04  *
05  * "Hilbert II" is free software; you can redistribute
06  * it and/or modify it under the terms of the GNU General Public
07  * License as published by the Free Software Foundation; either
08  * version 2 of the License, or (at your option) any later version.
09  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  */
15 
16 package org.qedeq.kernel.se.dto.module;
17 
18 import java.util.ArrayList;
19 import java.util.List;
20 
21 import org.qedeq.base.utility.EqualsUtility;
22 import org.qedeq.kernel.se.base.module.Latex;
23 import org.qedeq.kernel.se.base.module.LatexList;
24 
25 
26 /**
27  * List of LaTeX text parts.
28  *
29  @author  Michael Meyling
30  */
31 public class LatexListVo implements LatexList {
32 
33     /** Contains all list elements. */
34     private final List list;
35 
36     /**
37      * Constructs an empty list of LaTeX text parts.
38      */
39     public LatexListVo() {
40         this.list = new ArrayList();
41     }
42 
43     /**
44      * Add language dependent LaTeX text to list.
45      *
46      @param   latex   LaTeX text.
47      */
48     public final void add(final LatexVo latex) {
49         list.add(latex);
50     }
51 
52     public final int size() {
53         return list.size();
54     }
55 
56     public final Latex get(final int index) {
57         return (Latexlist.get(index);
58     }
59 
60     public boolean equals(final Object obj) {
61         if (!(obj instanceof LatexListVo)) {
62             return false;
63         }
64         final LatexListVo otherList = (LatexListVoobj;
65         if (size() != otherList.size()) {
66             return false;
67         }
68         for (int i = 0; i < size(); i++) {
69             if (!EqualsUtility.equals(get(i), otherList.get(i))) {
70                 return false;
71             }
72         }
73         return true;
74     }
75 
76     public int hashCode() {
77         int hash = 0;
78         for (int i = 0; i < size(); i++) {
79             hash = hash ^ (i + 1);
80             if (get(i!= null) {
81                 hash = hash ^ get(i).hashCode();
82             }
83         }
84         return hash;
85     }
86 
87     public String toString() {
88         final StringBuffer buffer = new StringBuffer("Latex:\n");
89         for (int i = 0; i < size(); i++) {
90             if (i != 0) {
91                 buffer.append("\n");
92             }
93             buffer.append((i + 1":\t");
94             buffer.append(get(i!= null ? get(i).toString() null);
95         }
96         return buffer.toString();
97     }
98 
99 }