XmlPeer.java

1
/*
2
 * $Id: XmlPeer.java 3373 2008-05-12 16:21:24Z xlv $
3
 *
4
 * Copyright 2001, 2002 by Bruno Lowagie.
5
 *
6
 * The contents of this file are subject to the Mozilla Public License Version 1.1
7
 * (the "License"); you may not use this file except in compliance with the License.
8
 * You may obtain a copy of the License at http://www.mozilla.org/MPL/
9
 *
10
 * Software distributed under the License is distributed on an "AS IS" basis,
11
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12
 * for the specific language governing rights and limitations under the License.
13
 *
14
 * The Original Code is 'iText, a free JAVA-PDF library'.
15
 *
16
 * The Initial Developer of the Original Code is Bruno Lowagie. Portions created by
17
 * the Initial Developer are Copyright (C) 1999, 2000, 2001, 2002 by Bruno Lowagie.
18
 * All Rights Reserved.
19
 * Co-Developer of the code is Paulo Soares. Portions created by the Co-Developer
20
 * are Copyright (C) 2000, 2001, 2002 by Paulo Soares. All Rights Reserved.
21
 *
22
 * Contributor(s): all the names of the contributors are added in the source code
23
 * where applicable.
24
 *
25
 * Alternatively, the contents of this file may be used under the terms of the
26
 * LGPL license (the "GNU LIBRARY GENERAL PUBLIC LICENSE"), in which case the
27
 * provisions of LGPL are applicable instead of those above.  If you wish to
28
 * allow use of your version of this file only under the terms of the LGPL
29
 * License and not to allow others to use your version of this file under
30
 * the MPL, indicate your decision by deleting the provisions above and
31
 * replace them with the notice and other provisions required by the LGPL.
32
 * If you do not delete the provisions above, a recipient may use your version
33
 * of this file under either the MPL or the GNU LIBRARY GENERAL PUBLIC LICENSE.
34
 *
35
 * This library is free software; you can redistribute it and/or modify it
36
 * under the terms of the MPL as stated above or under the terms of the GNU
37
 * Library General Public License as published by the Free Software Foundation;
38
 * either version 2 of the License, or any later version.
39
 *
40
 * This library is distributed in the hope that it will be useful, but WITHOUT
41
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
42
 * FOR A PARTICULAR PURPOSE. See the GNU Library general Public License for more
43
 * details.
44
 *
45
 * If you didn't download this code from the following link, you should check if
46
 * you aren't using an obsolete version:
47
 * http://www.lowagie.com/iText/
48
 */
49
50
package com.lowagie.text.xml;
51
52
import com.lowagie.text.ElementTags;
53
import org.xml.sax.Attributes;
54
55
import java.util.Properties;
56
57
/**
58
 * This interface is implemented by the peer of all the iText objects.
59
 */
60
61
public class XmlPeer {
62
63
    /**
64
     * This is the name of the alias.
65
     */
66
    protected String tagname;
67
68
    /**
69
     * This is the name of the alias.
70
     */
71
    protected String customTagname;
72
73
    /**
74
     * This is the Map that contains the aliases of the attributes.
75
     */
76
    protected Properties attributeAliases = new Properties();
77
78
    /**
79
     * This is the Map that contains the default values of the attributes.
80
     */
81
    protected Properties attributeValues = new Properties();
82
83
    /**
84
     * This is String that contains the default content of the attributes.
85
     */
86
    protected String defaultContent = null;
87
88
    /**
89
     * Creates a XmlPeer.
90
     *
91
     * @param name  the iText name of a tag
92
     * @param alias the user defined name of a tag
93
     */
94
95
    public XmlPeer(String name, String alias) {
96
        this.tagname = name;
97
        this.customTagname = alias;
98
    }
99
100
    /**
101
     * Gets the tagname of the peer.
102
     *
103
     * @return the iText name of a tag
104
     */
105
106
    public String getTag() {
107
        return tagname;
108
    }
109
110
    /**
111
     * Gets the tagname of the peer.
112
     *
113
     * @return the user defined tagname
114
     */
115
116
    public String getAlias() {
117
        return customTagname;
118
    }
119
120
    /**
121
     * Gets the list of attributes of the peer.
122
     *
123
     * @param attrs the user defined set of attributes
124
     * @return the set of attributes translated to iText attributes
125
     */
126
    public Properties getAttributes(Attributes attrs) {
127
        Properties attributes = new Properties();
128 1 1. getAttributes : removed call to java/util/Properties::putAll → NO_COVERAGE
        attributes.putAll(attributeValues);
129 1 1. getAttributes : negated conditional → NO_COVERAGE
        if (defaultContent != null) {
130
            attributes.put(ElementTags.ITEXT, defaultContent);
131
        }
132 1 1. getAttributes : negated conditional → NO_COVERAGE
        if (attrs != null) {
133 2 1. getAttributes : changed conditional boundary → NO_COVERAGE
2. getAttributes : negated conditional → NO_COVERAGE
            for (int i = 0; i < attrs.getLength(); i++) {
134
                String attribute = getName(attrs.getQName(i));
135
                attributes.setProperty(attribute, attrs.getValue(i));
136
            }
137
        }
138 1 1. getAttributes : mutated return of Object value for com/lowagie/text/xml/XmlPeer::getAttributes to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE
        return attributes;
139
    }
140
141
    /**
142
     * Sets an alias for an attribute.
143
     *
144
     * @param name  the iText tagname
145
     * @param alias the custom tagname
146
     */
147
148
    public void addAlias(String name, String alias) {
149
        attributeAliases.put(alias, name);
150
    }
151
152
    /**
153
     * Sets a value for an attribute.
154
     *
155
     * @param name  the iText tagname
156
     * @param value the default value for this tag
157
     */
158
159
    public void addValue(String name, String value) {
160
        attributeValues.put(name, value);
161
    }
162
163
    /**
164
     * Sets the default content.
165
     *
166
     * @param content the default content
167
     */
168
169
    public void setContent(String content) {
170
        this.defaultContent = content;
171
    }
172
173
    /**
174
     * Returns the iText attribute name.
175
     *
176
     * @param name the custom attribute name
177
     * @return iText translated attribute name
178
     */
179
180
    public String getName(String name) {
181
        String value;
182 1 1. getName : negated conditional → NO_COVERAGE
        if ((value = attributeAliases.getProperty(name)) != null) {
183 1 1. getName : mutated return of Object value for com/lowagie/text/xml/XmlPeer::getName to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE
            return value;
184
        }
185 1 1. getName : mutated return of Object value for com/lowagie/text/xml/XmlPeer::getName to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE
        return name;
186
    }
187
188
    /**
189
     * Returns the default values.
190
     *
191
     * @return A set of default (user defined) values
192
     */
193
194
    public Properties getDefaultValues() {
195
        return attributeValues;
196
    }
197
}

Mutations

128

1.1
Location : getAttributes
Killed by : none
removed call to java/util/Properties::putAll → NO_COVERAGE

129

1.1
Location : getAttributes
Killed by : none
negated conditional → NO_COVERAGE

132

1.1
Location : getAttributes
Killed by : none
negated conditional → NO_COVERAGE

133

1.1
Location : getAttributes
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : getAttributes
Killed by : none
negated conditional → NO_COVERAGE

138

1.1
Location : getAttributes
Killed by : none
mutated return of Object value for com/lowagie/text/xml/XmlPeer::getAttributes to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE

182

1.1
Location : getName
Killed by : none
negated conditional → NO_COVERAGE

183

1.1
Location : getName
Killed by : none
mutated return of Object value for com/lowagie/text/xml/XmlPeer::getName to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE

185

1.1
Location : getName
Killed by : none
mutated return of Object value for com/lowagie/text/xml/XmlPeer::getName to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE

Active mutators

Tests examined


Report generated by PIT 1.4.2