1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
|
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/* $Id$ */
package org.apache.fop.afp;
import org.apache.fop.afp.modca.Registry;
import org.apache.fop.afp.modca.triplets.MappingOptionTriplet;
/**
* A list of parameters associated with an AFP data objects
*/
public class AFPDataObjectInfo {
/** the object area info */
private AFPObjectAreaInfo objectAreaInfo;
/** resource info */
private AFPResourceInfo resourceInfo;
/** the data object width */
private int dataWidth;
/** the data object height */
private int dataHeight;
/** the object registry mimetype */
private String mimeType;
/** the object data in a byte array */
private byte[] data;
/** the object data height resolution */
private int dataHeightRes;
/** the object data width resolution */
private int dataWidthRes;
/** controls whether to create a page segment or a simple object */
private boolean createPageSegment;
/** controls the mapping of the image data into the image area */
private byte mappingOption = MappingOptionTriplet.SCALE_TO_FILL;
/**
* Default constructor
*/
public AFPDataObjectInfo() {
}
/**
* Sets the image mime type
*
* @param mimeType the image mime type
*/
public void setMimeType(String mimeType) {
this.mimeType = mimeType;
}
/**
* Returns the mime type of this data object
*
* @return the mime type of this data object
*/
public String getMimeType() {
return mimeType;
}
/**
* Convenience method to return the object type
*
* @return the object type
*/
public Registry.ObjectType getObjectType() {
return Registry.getInstance().getObjectType(getMimeType());
}
/**
* Returns the resource level at which this data object should reside
*
* @return the resource level at which this data object should reside
*/
public AFPResourceInfo getResourceInfo() {
if (resourceInfo == null) {
this.resourceInfo = new AFPResourceInfo();
}
return resourceInfo;
}
/**
* Sets the resource level at which this object should reside
*
* @param resourceInfo the resource level at which this data object should reside
*/
public void setResourceInfo(AFPResourceInfo resourceInfo) {
this.resourceInfo = resourceInfo;
}
/**
* Sets the object area info
*
* @param objectAreaInfo the object area info
*/
public void setObjectAreaInfo(AFPObjectAreaInfo objectAreaInfo) {
this.objectAreaInfo = objectAreaInfo;
}
/**
* Returns the object area info
*
* @return the object area info
*/
public AFPObjectAreaInfo getObjectAreaInfo() {
return this.objectAreaInfo;
}
/**
* Returns the uri of this data object
*
* @return the uri of this data object
*/
public String getUri() {
return getResourceInfo().getUri();
}
/**
* Sets the data object uri
*
* @param uri the data object uri
*/
public void setUri(String uri) {
getResourceInfo().setUri(uri);
}
/**
* Returns the image data width
*
* @return the image data width
*/
public int getDataWidth() {
return dataWidth;
}
/**
* Sets the image data width
*
* @param imageDataWidth the image data width
*/
public void setDataWidth(int imageDataWidth) {
this.dataWidth = imageDataWidth;
}
/**
* Returns the image data height
*
* @return the image data height
*/
public int getDataHeight() {
return dataHeight;
}
/**
* Sets the image data height
*
* @param imageDataHeight the image data height
*/
public void setDataHeight(int imageDataHeight) {
this.dataHeight = imageDataHeight;
}
/**
* Returns the data height resolution
*
* @return the data height resolution
*/
public int getDataHeightRes() {
return this.dataHeightRes;
}
/**
* Sets the data height resolution
*
* @param dataHeightRes the data height resolution
*/
public void setDataHeightRes(int dataHeightRes) {
this.dataHeightRes = dataHeightRes;
}
/**
* Returns the data width resolution
*
* @return the data width resolution
*/
public int getDataWidthRes() {
return this.dataWidthRes;
}
/**
* Sets the data width resolution
*
* @param dataWidthRes the data width resolution
*/
public void setDataWidthRes(int dataWidthRes) {
this.dataWidthRes = dataWidthRes;
}
/**
* Sets the object data
*
* @param data the object data
*/
public void setData(byte[] data) {
this.data = data;
}
/**
* Returns the object data
*
* @return the object data
*/
public byte[] getData() {
return this.data;
}
/**
* Controls whether to create a page segment or a normal object.
* @param value true for page segments, false for objects
*/
public void setCreatePageSegment(boolean value) {
this.createPageSegment = value;
}
/**
* Indicates whether a page segment or a normal object shall be created.
* @return true for page segments, false for objects
*/
public boolean isCreatePageSegment() {
return this.createPageSegment;
}
/**
* Sets the way an image is mapped into its target area.
* @param mappingOption the mapping option (Valid values: see Mapping Option Triplet)
*/
public void setMappingOption(byte mappingOption) {
this.mappingOption = mappingOption;
}
/**
* Returns the way an image is mapped into its target area. By default, this is "scale to fill"
* behavior.
* @return the mapping option value from the Mapping Option Triplet
*/
public byte getMappingOption() {
return mappingOption;
}
/** {@inheritDoc} */
public String toString() {
return "AFPDataObjectInfo{"
+ "mimeType=" + mimeType
+ ", dataWidth=" + dataWidth
+ ", dataHeight=" + dataHeight
+ ", dataWidthRes=" + dataWidthRes
+ ", dataHeightRes=" + dataHeightRes
+ (objectAreaInfo != null ? ", objectAreaInfo=" + objectAreaInfo : "")
+ (resourceInfo != null ? ", resourceInfo=" + resourceInfo : "");
}
}
|