EMMA Coverage Report (generated Fri Feb 14 08:28:31 UTC 2014)
[all classes][org.qedeq.base.io]

COVERAGE SUMMARY FOR SOURCE FILE [SourceArea.java]

nameclass, %method, %block, %line, %
SourceArea.java100% (1/1)89%  (8/9)79%  (109/138)89%  (17/19)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class SourceArea100% (1/1)89%  (8/9)79%  (109/138)89%  (17/19)
getShortDescription (): String 0%   (0/1)0%   (0/27)0%   (0/1)
equals (Object): boolean 100% (1/1)93%  (28/30)75%  (3/4)
SourceArea (String): void 100% (1/1)100% (6/6)100% (2/2)
SourceArea (String, SourcePosition, SourcePosition): void 100% (1/1)100% (22/22)100% (7/7)
getAddress (): String 100% (1/1)100% (3/3)100% (1/1)
getEndPosition (): SourcePosition 100% (1/1)100% (3/3)100% (1/1)
getStartPosition (): SourcePosition 100% (1/1)100% (3/3)100% (1/1)
hashCode (): int 100% (1/1)100% (12/12)100% (1/1)
toString (): String 100% (1/1)100% (32/32)100% (1/1)

1/* This file is part of the project "Hilbert II" - http://www.qedeq.org
2 *
3 * Copyright 2000-2014,  Michael Meyling <mime@qedeq.org>.
4 *
5 * "Hilbert II" is free software; you can redistribute
6 * it and/or modify it under the terms of the GNU General Public
7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version.
9 *
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 
16package org.qedeq.base.io;
17 
18import java.io.Serializable;
19 
20 
21/**
22 * Describes an area of an URL contents.
23 *
24 * @author  Michael Meyling
25 */
26public final class SourceArea implements Serializable {
27 
28    /** Address of input, for identifying source. */
29    private final String address;
30 
31    /** Start position. Must be not <code>null</code>. */
32    private final SourcePosition startPosition;
33 
34    /** End position. Must be not <code>null</code>. */
35    private final SourcePosition endPosition;
36 
37    /**
38     * Constructs file position object.
39     *
40     * @param   address         For identifying source. Must not be <code>null</code>.
41     * @param   startPosition   Start position. Must not be <code>null</code>.
42     * @param   endPosition     Start position. Must not be <code>null</code>.
43     */
44    public SourceArea(final String address, final SourcePosition startPosition,
45            final SourcePosition endPosition) {
46        this.address = address;
47        if (address == null || startPosition == null || endPosition == null) {
48            throw new NullPointerException();
49        }
50        this.startPosition = startPosition;
51        this.endPosition = endPosition;
52    }
53 
54    /**
55     * Constructs file position object with dummy location at begin of file.
56     *
57     * @param   address         For identifying source. Must not be <code>null</code>.
58     */
59    public SourceArea(final String address) {
60        this(address, SourcePosition.BEGIN, SourcePosition.BEGIN);
61    }
62 
63    /**
64     * Get address (or something to identify it) of input source.
65     *
66     * @return  address of input source
67     */
68    public final String getAddress() {
69        return this.address;
70    }
71 
72    /**
73     * Get start position.
74     *
75     * @return  Start position.
76     */
77    public final SourcePosition getStartPosition() {
78        return startPosition;
79    }
80 
81    /**
82     * Get end position.
83     *
84     * @return  End position.
85     */
86    public final SourcePosition getEndPosition() {
87        return endPosition;
88    }
89 
90    public final int hashCode() {
91        return getAddress().hashCode() ^ getStartPosition().hashCode() ^ getEndPosition().hashCode();
92    }
93 
94    public final boolean equals(final Object obj) {
95        if (!(obj instanceof SourceArea)) {
96            return false;
97        }
98        final SourceArea other = (SourceArea) obj;
99        return getAddress().equals(other.getAddress())
100            && getStartPosition().equals(other.getStartPosition())
101            && getEndPosition().equals(other.getEndPosition());
102    }
103 
104    /**
105     * Get short description of area. Looks like "line1:column1 - line2:column2".
106     *
107     * @return  Textual description of area without address.
108     */
109    public final String getShortDescription() {
110        return getStartPosition().getRow() + ":" + getStartPosition().getColumn()
111            + " - " + getEndPosition().getRow() + ":" + getEndPosition().getColumn();
112    }
113 
114    public final String toString() {
115        return getAddress() + ":" + getStartPosition().getRow() + ":" + getStartPosition().getColumn()
116            + ":" + getEndPosition().getRow() + ":" + getEndPosition().getColumn();
117    }
118 
119}

[all classes][org.qedeq.base.io]
EMMA 2.1.5320 (stable) (C) Vladimir Roubtsov