XmpSchema.java

1
/*
2
 * $Id: XmpSchema.java 3543 2008-07-10 17:37:37Z xlv $
3
 *
4
 * Copyright 2005 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-2005 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-2005 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.xmp;
51
52
import java.util.Enumeration;
53
import java.util.Properties;
54
55
/**
56
 * Abstract superclass of the XmpSchemas supported by iText.
57
 */
58
public abstract class XmpSchema extends Properties {
59
60
    private static final long serialVersionUID = -176374295948945272L;
61
62
    /** the namesspace */
63
    protected String xmlns;
64
    
65
    /** Constructs an XMP schema. 
66
     * @param xmlns
67
     */
68
    public XmpSchema(String xmlns) {
69
        super();
70
        this.xmlns = xmlns;
71
    }
72
    /**
73
     * The String representation of the contents.
74
     * @return a String representation.
75
     */
76
    public String toString() {
77
        StringBuffer buf = new StringBuffer();
78
        for (Enumeration e = this.propertyNames(); e.hasMoreElements(); ) {
79
            process(buf, e.nextElement());
80
        }
81
        return buf.toString();
82
    }
83
    /**
84
     * Processes a property
85
     * @param buf
86
     * @param p
87
     */
88
    protected void process(StringBuffer buf, Object p) {
89
        buf.append('<');
90
        buf.append(p);
91
        buf.append('>');
92
        buf.append(this.get(p));
93
        buf.append("</");
94
        buf.append(p);
95
        buf.append('>');
96
    }
97
    /**
98
     * @return Returns the xmlns.
99
     */
100
    public String getXmlns() {
101
        return xmlns;
102
    }    
103
    
104
    /**
105
     * @param key
106
     * @param value
107
     * @return the previous property (null if there wasn't one)
108
     */
109
    public Object addProperty(String key, String value) {
110
        return this.setProperty(key, value);
111
    }
112
    
113
    /**
114
     * @see java.util.Properties#setProperty(java.lang.String, java.lang.String)
115
     */
116
    public Object setProperty(String key, String value) {
117 1 1. setProperty : mutated return of Object value for com/lowagie/text/xml/xmp/XmpSchema::setProperty to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE
        return super.setProperty(key, escape(value));
118
    }
119
    
120
    /**
121
     * @see java.util.Properties#setProperty(java.lang.String, java.lang.String)
122
     * 
123
     * @param key
124
     * @param value
125
     * @return the previous property (null if there wasn't one)
126
     */
127
    public Object setProperty(String key, XmpArray value) {
128 1 1. setProperty : mutated return of Object value for com/lowagie/text/xml/xmp/XmpSchema::setProperty to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE
        return super.setProperty(key, value.toString());
129
    }
130
    
131
    /**
132
     * @see java.util.Properties#setProperty(java.lang.String, java.lang.String)
133
     * 
134
     * @param key
135
     * @param value
136
     * @return the previous property (null if there wasn't one)
137
     */
138
    public Object setProperty(String key, LangAlt value) {
139 1 1. setProperty : mutated return of Object value for com/lowagie/text/xml/xmp/XmpSchema::setProperty to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE
        return super.setProperty(key, value.toString());
140
     }
141
    
142
    /**
143
     * @param content
144
     * @return an escaped string
145
     */
146
    public static String escape(String content) {
147
        StringBuilder buf = new StringBuilder();
148 2 1. escape : changed conditional boundary → NO_COVERAGE
2. escape : negated conditional → NO_COVERAGE
        for (int i = 0; i < content.length(); i++) {
149
            switch(content.charAt(i)) {
150
            case '<':
151
                buf.append("&lt;");
152
                break;
153
            case '>':
154
                buf.append("&gt;");
155
                break;
156
            case '\'':
157
                buf.append("&apos;");
158
                break;
159
            case '\"':
160
                buf.append("&quot;");
161
                break;
162
            case '&':
163
                buf.append("&amp;");
164
                break;
165
            default:
166
                buf.append(content.charAt(i));
167
            }
168
        }
169 1 1. escape : mutated return of Object value for com/lowagie/text/xml/xmp/XmpSchema::escape to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE
        return buf.toString();
170
    }
171
}

Mutations

117

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

128

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

139

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

148

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

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

169

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

Active mutators

Tests examined


Report generated by PIT 1.4.2