PdfShadingPattern.java

1
/*
2
 * Copyright 2002 Paulo Soares
3
 *
4
 * The contents of this file are subject to the Mozilla Public License Version 1.1
5
 * (the "License"); you may not use this file except in compliance with the License.
6
 * You may obtain a copy of the License at http://www.mozilla.org/MPL/
7
 *
8
 * Software distributed under the License is distributed on an "AS IS" basis,
9
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
10
 * for the specific language governing rights and limitations under the License.
11
 *
12
 * The Original Code is 'iText, a free JAVA-PDF library'.
13
 *
14
 * The Initial Developer of the Original Code is Bruno Lowagie. Portions created by
15
 * the Initial Developer are Copyright (C) 1999, 2000, 2001, 2002 by Bruno Lowagie.
16
 * All Rights Reserved.
17
 * Co-Developer of the code is Paulo Soares. Portions created by the Co-Developer
18
 * are Copyright (C) 2000, 2001, 2002 by Paulo Soares. All Rights Reserved.
19
 *
20
 * Contributor(s): all the names of the contributors are added in the source code
21
 * where applicable.
22
 *
23
 * Alternatively, the contents of this file may be used under the terms of the
24
 * LGPL license (the "GNU LIBRARY GENERAL PUBLIC LICENSE"), in which case the
25
 * provisions of LGPL are applicable instead of those above.  If you wish to
26
 * allow use of your version of this file only under the terms of the LGPL
27
 * License and not to allow others to use your version of this file under
28
 * the MPL, indicate your decision by deleting the provisions above and
29
 * replace them with the notice and other provisions required by the LGPL.
30
 * If you do not delete the provisions above, a recipient may use your version
31
 * of this file under either the MPL or the GNU LIBRARY GENERAL PUBLIC LICENSE.
32
 *
33
 * This library is free software; you can redistribute it and/or modify it
34
 * under the terms of the MPL as stated above or under the terms of the GNU
35
 * Library General Public License as published by the Free Software Foundation;
36
 * either version 2 of the License, or any later version.
37
 *
38
 * This library is distributed in the hope that it will be useful, but WITHOUT
39
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
40
 * FOR A PARTICULAR PURPOSE. See the GNU Library general Public License for more
41
 * details.
42
 *
43
 * If you didn't download this code from the following link, you should check if
44
 * you aren't using an obsolete version:
45
 * http://www.lowagie.com/iText/
46
 */
47
package com.lowagie.text.pdf;
48
49
import java.io.IOException;
50
import com.lowagie.text.error_messages.MessageLocalization;
51
/** Implements the shading pattern dictionary.
52
 *
53
 * @author Paulo Soares (psoares@consiste.pt)
54
 */
55
public class PdfShadingPattern extends PdfDictionary {
56
57
    protected PdfShading shading;
58
    
59
    protected PdfWriter writer;
60
61
    protected float[] matrix = {1, 0, 0, 1, 0, 0};
62
    
63
    protected PdfName patternName;
64
65
    protected PdfIndirectReference patternReference;
66
67
    /** Creates new PdfShadingPattern */
68
    public PdfShadingPattern(PdfShading shading) {
69
        writer = shading.getWriter();
70 1 1. : removed call to com/lowagie/text/pdf/PdfShadingPattern::put → NO_COVERAGE
        put(PdfName.PATTERNTYPE, new PdfNumber(2));
71
        this.shading = shading;
72
    }
73
        
74
    PdfName getPatternName() {
75
        return patternName;
76
    }
77
78
    PdfName getShadingName() {
79
        return shading.getShadingName();
80
    }
81
    
82
    PdfIndirectReference getPatternReference() {
83 1 1. getPatternReference : negated conditional → NO_COVERAGE
        if (patternReference == null)
84
            patternReference = writer.getPdfIndirectReference();
85 1 1. getPatternReference : mutated return of Object value for com/lowagie/text/pdf/PdfShadingPattern::getPatternReference to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE
        return patternReference;
86
    }
87
    
88
    PdfIndirectReference getShadingReference() {
89
        return shading.getShadingReference();
90
    }
91
    
92
    void setName(int number) {
93
        patternName = new PdfName("P" + number);
94
    }
95
    
96
    void addToBody() throws IOException {
97 1 1. addToBody : removed call to com/lowagie/text/pdf/PdfShadingPattern::put → NO_COVERAGE
        put(PdfName.SHADING, getShadingReference());
98 1 1. addToBody : removed call to com/lowagie/text/pdf/PdfShadingPattern::put → NO_COVERAGE
        put(PdfName.MATRIX, new PdfArray(matrix));
99
        writer.addToBody(this, getPatternReference());
100
    }
101
    
102
    public void setMatrix(float[] matrix) {
103 1 1. setMatrix : negated conditional → NO_COVERAGE
        if (matrix.length != 6)
104
            throw new RuntimeException(MessageLocalization.getComposedMessage("the.matrix.size.must.be.6"));
105
        this.matrix = matrix;
106
    }
107
    
108
    public float[] getMatrix() {
109
        return matrix;
110
    }
111
    
112
    public PdfShading getShading() {
113
        return shading;
114
    }
115
    
116
    ColorDetails getColorDetails() {
117
        return shading.getColorDetails();
118
    }
119
120
}

Mutations

70

1.1
Location :
Killed by : none
removed call to com/lowagie/text/pdf/PdfShadingPattern::put → NO_COVERAGE

83

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

85

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

97

1.1
Location : addToBody
Killed by : none
removed call to com/lowagie/text/pdf/PdfShadingPattern::put → NO_COVERAGE

98

1.1
Location : addToBody
Killed by : none
removed call to com/lowagie/text/pdf/PdfShadingPattern::put → NO_COVERAGE

103

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

Active mutators

Tests examined


Report generated by PIT 1.4.2