Clover coverage report - QedeqKernelSe Coverage Report
Coverage timestamp: Do Mai 10 2007 03:16:40 CEST
file stats: LOC: 104   Methods: 7
NCLOC: 57   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
SubsectionListVo.java 100% 100% 100% 100%
coverage
 1    /* $Id: SubsectionListVo.java,v 1.6 2007/05/10 00:37:50 m31 Exp $
 2    *
 3    * This file is part of the project "Hilbert II" - http://www.qedeq.org
 4    *
 5    * Copyright 2000-2007, Michael Meyling <mime@qedeq.org>.
 6    *
 7    * "Hilbert II" is free software; you can redistribute
 8    * it and/or modify it under the terms of the GNU General Public
 9    * License as published by the Free Software Foundation; either
 10    * version 2 of the License, or (at your option) any later version.
 11    *
 12    * This program is distributed in the hope that it will be useful,
 13    * but WITHOUT ANY WARRANTY; without even the implied warranty of
 14    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 15    * GNU General Public License for more details.
 16    */
 17   
 18    package org.qedeq.kernel.dto.module;
 19   
 20    import java.util.ArrayList;
 21    import java.util.List;
 22   
 23    import org.qedeq.kernel.base.module.SubsectionList;
 24    import org.qedeq.kernel.base.module.SubsectionType;
 25    import org.qedeq.kernel.utility.EqualsUtility;
 26   
 27   
 28    /**
 29    * List of nodes. In LaTeX terms a node is something like an "subsection".
 30    *
 31    * @version $Revision: 1.6 $
 32    * @author Michael Meyling
 33    */
 34    public class SubsectionListVo implements SubsectionList {
 35   
 36    /** Contains all nodes. */
 37    private final List list;
 38   
 39    /**
 40    * Constructs an empty node list.
 41    */
 42  368 public SubsectionListVo() {
 43  368 this.list = new ArrayList();
 44   
 45    }
 46   
 47    /**
 48    * Add subsection to this list.
 49    *
 50    * @param subsection Subsection to add.
 51    */
 52  1642 public final void add(final SubsectionType subsection) {
 53  1642 list.add(subsection);
 54    }
 55   
 56  142289 public final int size() {
 57  142289 return list.size();
 58    }
 59   
 60  445834 public final SubsectionType get(final int index) {
 61  445834 return (SubsectionType) list.get(index);
 62    }
 63   
 64  157 public boolean equals(final Object obj) {
 65  157 if (!(obj instanceof SubsectionListVo)) {
 66  6 return false;
 67    }
 68  151 final SubsectionListVo otherList = (SubsectionListVo) obj;
 69  151 if (size() != otherList.size()) {
 70  7 return false;
 71    }
 72  144 for (int i = 0; i < size(); i++) {
 73  143 if (!EqualsUtility.equals(get(i), otherList.get(i))) {
 74  2 return false;
 75    }
 76    }
 77  142 return true;
 78    }
 79   
 80  128 public int hashCode() {
 81  128 int hash = 0;
 82  128 for (int i = 0; i < size(); i++) {
 83  126 hash = hash ^ (i + 1);
 84  126 if (get(i) != null) {
 85  125 hash = hash ^ get(i).hashCode();
 86    }
 87    }
 88  128 return hash;
 89    }
 90   
 91  120 public String toString() {
 92  120 final StringBuffer buffer = new StringBuffer("List of nodes:\n");
 93  120 for (int i = 0; i < size(); i++) {
 94  117 if (i != 0) {
 95  6 buffer.append("\n");
 96    }
 97  117 buffer.append((i + 1) + ":\t");
 98  117 buffer.append(get(i) != null ? get(i).toString() : null);
 99    }
 100  120 return buffer.toString();
 101    }
 102   
 103    }
 104