KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > pdfbox > pdmodel > graphics > PDLineDashPattern


1 /**
2  * Copyright (c) 2003-2006, www.pdfbox.org
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are met:
7  *
8  * 1. Redistributions of source code must retain the above copyright notice,
9  * this list of conditions and the following disclaimer.
10  * 2. Redistributions in binary form must reproduce the above copyright notice,
11  * this list of conditions and the following disclaimer in the documentation
12  * and/or other materials provided with the distribution.
13  * 3. Neither the name of pdfbox; nor the names of its
14  * contributors may be used to endorse or promote products derived from this
15  * software without specific prior written permission.
16  *
17  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20  * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
21  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
24  * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  *
28  * http://www.pdfbox.org
29  *
30  */

31 package org.pdfbox.pdmodel.graphics;
32
33 import org.pdfbox.cos.COSArray;
34 import org.pdfbox.cos.COSBase;
35 import org.pdfbox.cos.COSInteger;
36 import org.pdfbox.cos.COSNumber;
37
38 import org.pdfbox.pdmodel.common.COSArrayList;
39 import org.pdfbox.pdmodel.common.COSObjectable;
40
41 import java.util.List JavaDoc;
42
43 /**
44  * This class represents the line dash pattern for a graphics state. See PDF
45  * Reference 1.5 section 4.3.2
46  *
47  * @author <a HREF="mailto:ben@benlitchfield.com">Ben Litchfield</a>
48  * @version $Revision: 1.6 $
49  */

50 public class PDLineDashPattern implements COSObjectable
51 {
52     private COSArray lineDashPattern = null;
53
54     /**
55      * Creates a blank line dash pattern. With no dashes and a phase of 0.
56      */

57     public PDLineDashPattern()
58     {
59         lineDashPattern = new COSArray();
60         lineDashPattern.add( new COSArray() );
61         lineDashPattern.add( new COSInteger( 0 ) );
62     }
63
64     /**
65      * Constructs a line dash pattern from an existing array.
66      *
67      * @param ldp The existing line dash pattern.
68      */

69     public PDLineDashPattern( COSArray ldp )
70     {
71         lineDashPattern = ldp;
72     }
73     
74     /**
75      * Constructs a line dash pattern from an existing array.
76      *
77      * @param ldp The existing line dash pattern.
78      * @param phase The phase for the line dash pattern.
79      */

80     public PDLineDashPattern( COSArray ldp, int phase )
81     {
82         lineDashPattern = new COSArray();
83         lineDashPattern.add( ldp );
84         lineDashPattern.add( new COSInteger( phase ) );
85     }
86
87     /**
88      * {@inheritDoc}
89      */

90     public COSBase getCOSObject()
91     {
92         return lineDashPattern;
93     }
94
95     /**
96      * This will get the line dash pattern phase. The dash phase specifies the
97      * distance into the dash pattern at which to start the dash.
98      *
99      * @return The line dash pattern phase.
100      */

101     public int getPhaseStart()
102     {
103         COSNumber phase = (COSNumber)lineDashPattern.get( 1 );
104         return phase.intValue();
105     }
106
107     /**
108      * This will set the line dash pattern phase.
109      *
110      * @param phase The new line dash patter phase.
111      */

112     public void setPhaseStart( int phase )
113     {
114         lineDashPattern.set( 1, new COSInteger( phase ) );
115     }
116
117     /**
118      * This will return a list of java.lang.Integer objects that represent the line
119      * dash pattern appearance.
120      *
121      * @return The line dash pattern.
122      */

123     public List getDashPattern()
124     {
125         COSArray dashPatterns = (COSArray)lineDashPattern.get( 0 );
126         return COSArrayList.convertIntegerCOSArrayToList( dashPatterns );
127     }
128     
129     /**
130      * Get the line dash pattern as a COS object.
131      *
132      * @return The cos array line dash pattern.
133      */

134     public COSArray getCOSDashPattern()
135     {
136         return (COSArray)lineDashPattern.get( 0 );
137     }
138
139     /**
140      * This will replace the existing line dash pattern.
141      *
142      * @param dashPattern A list of java.lang.Integer objects.
143      */

144     public void setDashPattern( List dashPattern )
145     {
146         lineDashPattern.set( 0, COSArrayList.converterToCOSArray( dashPattern ) );
147     }
148 }
Popular Tags