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 (Latex) list.get(index);
58 }
59
60 public boolean equals(final Object obj) {
61 if (!(obj instanceof LatexListVo)) {
62 return false;
63 }
64 final LatexListVo otherList = (LatexListVo) obj;
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 }
|