Statistics
| Revision:

root / trunk / libraries / libDwg / src / com / iver / cit / jdwglib / dwg / readers / DwgObjectReaderPool.java @ 31989

History | View | Annotate | Download (20.9 KB)

1
/*
2
 * Created on 09-ene-2007
3
 *
4
 * gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
5
 *
6
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
7
 *
8
 * This program is free software; you can redistribute it and/or
9
 * modify it under the terms of the GNU General Public License
10
 * as published by the Free Software Foundation; either version 2
11
 * of the License, or (at your option) any later version.
12
 *
13
 * This program is distributed in the hope that it will be useful,
14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 * GNU General Public License for more details.
17
 *
18
 * You should have received a copy of the GNU General Public License
19
 * along with this program; if not, write to the Free Software
20
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
21
 *
22
 * For more information, contact:
23
 *
24
 *  Generalitat Valenciana
25
 *   Conselleria d'Infraestructures i Transport
26
 *   Av. Blasco Ib??ez, 50
27
 *   46010 VALENCIA
28
 *   SPAIN
29
 *
30
 *      +34 963862235
31
 *   gvsig@gva.es
32
 *      www.gvsig.gva.es
33
 *
34
 *    or
35
 *
36
 *   IVER T.I. S.A
37
 *   Salamanca 50
38
 *   46005 Valencia
39
 *   Spain
40
 *
41
 *   +34 963163400
42
 *   dac@iver.es
43
 */
44
package com.iver.cit.jdwglib.dwg.readers;
45

    
46
import java.util.HashMap;
47
import java.util.Map;
48
import com.iver.cit.jdwglib.dwg.DwgObject;
49
import com.iver.cit.jdwglib.dwg.objects.DwgArc;
50
import com.iver.cit.jdwglib.dwg.objects.DwgAttdef;
51
import com.iver.cit.jdwglib.dwg.objects.DwgAttrib;
52
import com.iver.cit.jdwglib.dwg.objects.DwgBlock;
53
import com.iver.cit.jdwglib.dwg.objects.DwgBlockControl;
54
import com.iver.cit.jdwglib.dwg.objects.DwgBlockHeader;
55
import com.iver.cit.jdwglib.dwg.objects.DwgCircle;
56
import com.iver.cit.jdwglib.dwg.objects.DwgDictionary;
57
import com.iver.cit.jdwglib.dwg.objects.DwgDictionaryVar;
58
import com.iver.cit.jdwglib.dwg.objects.DwgDimOrd;
59
import com.iver.cit.jdwglib.dwg.objects.DwgEllipse;
60
import com.iver.cit.jdwglib.dwg.objects.DwgEndblk;
61
import com.iver.cit.jdwglib.dwg.objects.DwgFace3D;
62
import com.iver.cit.jdwglib.dwg.objects.DwgHatch;
63
import com.iver.cit.jdwglib.dwg.objects.DwgIdBuffer;
64
import com.iver.cit.jdwglib.dwg.objects.DwgImage;
65
import com.iver.cit.jdwglib.dwg.objects.DwgImageDef;
66
import com.iver.cit.jdwglib.dwg.objects.DwgImageDefReactor;
67
import com.iver.cit.jdwglib.dwg.objects.DwgInsert;
68
import com.iver.cit.jdwglib.dwg.objects.DwgLayer;
69
import com.iver.cit.jdwglib.dwg.objects.DwgLayerControl;
70
import com.iver.cit.jdwglib.dwg.objects.DwgLayerIndex;
71
import com.iver.cit.jdwglib.dwg.objects.DwgLine;
72
import com.iver.cit.jdwglib.dwg.objects.DwgLinearDimension;
73
import com.iver.cit.jdwglib.dwg.objects.DwgLwPolyline;
74
import com.iver.cit.jdwglib.dwg.objects.DwgMText;
75
import com.iver.cit.jdwglib.dwg.objects.DwgMeshPolyline;
76
import com.iver.cit.jdwglib.dwg.objects.DwgMinsert;
77
import com.iver.cit.jdwglib.dwg.objects.DwgOle2Frame;
78
import com.iver.cit.jdwglib.dwg.objects.DwgPFacePolyline;
79
import com.iver.cit.jdwglib.dwg.objects.DwgPoint;
80
import com.iver.cit.jdwglib.dwg.objects.DwgPolyline2D;
81
import com.iver.cit.jdwglib.dwg.objects.DwgPolyline3D;
82
import com.iver.cit.jdwglib.dwg.objects.DwgRasterVariables;
83
import com.iver.cit.jdwglib.dwg.objects.DwgSeqend;
84
import com.iver.cit.jdwglib.dwg.objects.DwgSolid;
85
import com.iver.cit.jdwglib.dwg.objects.DwgSortEntStable;
86
import com.iver.cit.jdwglib.dwg.objects.DwgSpline;
87
import com.iver.cit.jdwglib.dwg.objects.DwgText;
88
import com.iver.cit.jdwglib.dwg.objects.DwgVertex2D;
89
import com.iver.cit.jdwglib.dwg.objects.DwgVertex3D;
90
import com.iver.cit.jdwglib.dwg.objects.DwgVertexMesh;
91
import com.iver.cit.jdwglib.dwg.objects.DwgVertexPFace;
92
import com.iver.cit.jdwglib.dwg.objects.DwgVertexPFaceFace;
93
import com.iver.cit.jdwglib.dwg.objects.DwgXRecord;
94
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgArcReader1314;
95
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgAttdefReader1314;
96
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgAttribReader1314;
97
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgBlockControlReader1314;
98
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgBlockHeaderReader1314;
99
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgBlockReader1314;
100
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgCircleReader1314;
101
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgDictionaryReader1314;
102
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgDictionaryVarReader1314;
103
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgDimOrdReader1314;
104
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgEllipseReader1314;
105
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgEndBlkReader1314;
106
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgFace3DReader1314;
107
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgHatchReader1314;
108
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgIdBufferReader1314;
109
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgImageDefReactor1314;
110
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgImageDefReader1314;
111
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgImageReader1314;
112
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgInsertReader1314;
113
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgLayerControlReader1314;
114
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgLayerIndexReader1314;
115
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgLayerReader1314;
116
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgLineReader1314;
117
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgLinearDimensionReader1314;
118
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgLwPolylineReader1314;
119
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgMTextReader1314;
120
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgMeshReader1314;
121
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgMinsertReader1314;
122
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgOle2FrameReader1314;
123
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgPFaceReader1314;
124
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgPointReader1314;
125
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgPolyline2DReader1314;
126
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgPolyline3DReader1314;
127
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgRasterVariablesReader1314;
128
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgSeqEndReader1314;
129
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgSolidReader1314;
130
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgSortEntsTableReader1314;
131
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgSplineReader1314;
132
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgTextReader1314;
133
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgVertex2DReader1314;
134
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgVertex3DReader1314;
135
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgVertexMeshReader1314;
136
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgVertexPFaceFaceReader1314;
137
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgVertexPFaceReader1314;
138
import com.iver.cit.jdwglib.dwg.readers.objreaders.v1314.DwgXrecordReader1314;
139
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgArcReader15;
140
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgAttdefReader15;
141
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgAttribReader15;
142
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgBlockControlReader15;
143
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgBlockHeaderReader15;
144
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgBlockReader15;
145
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgCircleReader15;
146
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgDictionaryReader15;
147
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgEllipseReader15;
148
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgEndBlkReader15;
149
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgInsertReader15;
150
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgLayerControlReader15;
151
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgLayerReader15;
152
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgLineReader15;
153
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgLinearDimensionReader15;
154
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgLwPolylineReader15;
155
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgMTextReader15;
156
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgMeshReader15;
157
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgPFaceReader15;
158
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgPointReader15;
159
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgPolyline2DReader15;
160
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgPolyline3DReader15;
161
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgSeqEndReader15;
162
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgSolidReader15;
163
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgSplineReader15;
164
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgTextReader15;
165
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgVertex2DReader15;
166
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgVertex3DReader15;
167
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgVertexMeshReader15;
168
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgVertexPFaceFaceReader15;
169
import com.iver.cit.jdwglib.dwg.readers.objreaders.v15.DwgVertexPFaceReader15;
170
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgArcReader2004;
171
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgAttdefReader2004;
172
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgAttribReader2004;
173
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgBlockControlReader2004;
174
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgBlockHeaderReader2004;
175
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgBlockReader2004;
176
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgCircleReader2004;
177
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgDictionaryReader2004;
178
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgEllipseReader2004;
179
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgEndBlkReader2004;
180
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgInsertReader2004;
181
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgLayerControlReader2004;
182
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgLayerReader2004;
183
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgLineReader2004;
184
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgLinearDimensionReader2004;
185
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgLwPolylineReader2004;
186
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgMTextReader2004;
187
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgMeshReader2004;
188
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgPFaceReader2004;
189
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgPointReader2004;
190
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgPolyline2DReader2004;
191
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgPolyline3DReader2004;
192
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgSeqEndReader2004;
193
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgSolidReader2004;
194
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgSplineReader2004;
195
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgTextReader2004;
196
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgVertex2DReader2004;
197
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgVertex3DReader2004;
198
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgVertexMeshReader2004;
199
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgVertexPFaceFaceReader2004;
200
import com.iver.cit.jdwglib.dwg.readers.objreaders.v2004.DwgVertexPFaceReader2004;
201
/**
202
 * @author azabala
203
 */
204
public class DwgObjectReaderPool {
205
        
206
        private static final DwgObjectReaderPool _instance = 
207
                new DwgObjectReaderPool();
208
        
209
        private Map obj_readers;
210
        
211
        static{
212
                
213
//                READERS FOR DWG V2004
214
                _instance.put(DwgArc.class, "2004", new DwgArcReader2004());
215
                _instance.put(DwgAttdef.class, "2004", new DwgAttdefReader2004());
216
                _instance.put(DwgAttrib.class, "2004", new DwgAttribReader2004());
217
                _instance.put(DwgBlock.class, "2004", new DwgBlockReader2004());
218
                _instance.put(DwgBlockControl.class, "2004", new DwgBlockControlReader2004());
219
                _instance.put(DwgBlockHeader.class, "2004", new DwgBlockHeaderReader2004());
220
                _instance.put(DwgCircle.class, "2004", new DwgCircleReader2004());
221
                _instance.put(DwgEllipse.class, "2004", new DwgEllipseReader2004());
222
                _instance.put(DwgEndblk.class, "2004", new DwgEndBlkReader2004());
223
                _instance.put(DwgInsert.class, "2004", new DwgInsertReader2004());
224
                _instance.put(DwgLayer.class, "2004", new DwgLayerReader2004());
225
                _instance.put(DwgLayerControl.class, "2004", new DwgLayerControlReader2004());
226
                _instance.put(DwgLine.class, "2004", new DwgLineReader2004());
227
                _instance.put(DwgLinearDimension.class, "2004", new DwgLinearDimensionReader2004());
228
                _instance.put(DwgLwPolyline.class, "2004", new DwgLwPolylineReader2004());
229
                _instance.put(DwgMText.class, "2004", new DwgMTextReader2004());
230
                _instance.put(DwgPoint.class, "2004", new DwgPointReader2004());
231
                _instance.put(DwgPolyline2D.class, "2004", new DwgPolyline2DReader2004());
232
                _instance.put(DwgPolyline3D.class, "2004", new DwgPolyline3DReader2004());
233
                _instance.put(DwgSeqend.class, "2004", new DwgSeqEndReader2004());
234
                _instance.put(DwgSpline.class, "2004", new DwgSplineReader2004());
235
                _instance.put(DwgText.class, "2004", new DwgTextReader2004());
236
                _instance.put(DwgVertex2D.class, "2004", new DwgVertex2DReader2004());
237
                _instance.put(DwgVertex3D.class, "2004", new DwgVertex3DReader2004());
238
                _instance.put(DwgDictionary.class, "2004", new DwgDictionaryReader2004());
239
                _instance.put(DwgVertexPFace.class, "2004", new DwgVertexPFaceReader2004());
240
                _instance.put(DwgVertexPFaceFace.class, "2004", new DwgVertexPFaceFaceReader2004());
241
                _instance.put(DwgPFacePolyline.class, "2004", new DwgPFaceReader2004());
242
                _instance.put(DwgMeshPolyline.class, "2004", new DwgMeshReader2004());
243
                _instance.put(DwgVertexMesh.class, "2004", new DwgVertexMeshReader2004());
244
                _instance.put(DwgSolid.class, "2004", new DwgSolidReader2004());
245

    
246
                //READERS FOR DWG V15
247
                _instance.put(DwgArc.class, "15", new DwgArcReader15());
248
                _instance.put(DwgAttdef.class, "15", new DwgAttdefReader15());
249
                _instance.put(DwgAttrib.class, "15", new DwgAttribReader15());
250
                _instance.put(DwgBlock.class, "15", new DwgBlockReader15());
251
                _instance.put(DwgBlockControl.class, "15", new DwgBlockControlReader15());
252
                _instance.put(DwgBlockHeader.class, "15", new DwgBlockHeaderReader15());
253
                _instance.put(DwgCircle.class, "15", new DwgCircleReader15());
254
                _instance.put(DwgEllipse.class, "15", new DwgEllipseReader15());
255
                _instance.put(DwgEndblk.class, "15", new DwgEndBlkReader15());
256
                _instance.put(DwgInsert.class, "15", new DwgInsertReader15());
257
                _instance.put(DwgLayer.class, "15", new DwgLayerReader15());
258
                _instance.put(DwgLayerControl.class, "15", new DwgLayerControlReader15());
259
                _instance.put(DwgLine.class, "15", new DwgLineReader15());
260
                _instance.put(DwgLinearDimension.class, "15", new DwgLinearDimensionReader15());
261
                _instance.put(DwgLwPolyline.class, "15", new DwgLwPolylineReader15());
262
                _instance.put(DwgMText.class, "15", new DwgMTextReader15());
263
                _instance.put(DwgPoint.class, "15", new DwgPointReader15());
264
                _instance.put(DwgPolyline2D.class, "15", new DwgPolyline2DReader15());
265
                _instance.put(DwgPolyline3D.class, "15", new DwgPolyline3DReader15());
266
                _instance.put(DwgSeqend.class, "15", new DwgSeqEndReader15());
267
                _instance.put(DwgSolid.class, "15", new DwgSolidReader15());
268
                _instance.put(DwgSpline.class, "15", new DwgSplineReader15());
269
                _instance.put(DwgText.class, "15", new DwgTextReader15());
270
                _instance.put(DwgVertex2D.class, "15", new DwgVertex2DReader15());
271
                _instance.put(DwgVertex3D.class, "15", new DwgVertex3DReader15());
272
                _instance.put(DwgDictionary.class, "15", new DwgDictionaryReader15());
273
                _instance.put(DwgVertexPFace.class, "15", new DwgVertexPFaceReader15());
274
                _instance.put(DwgVertexPFaceFace.class, "15", new DwgVertexPFaceFaceReader15());
275
                _instance.put(DwgPFacePolyline.class, "15", new DwgPFaceReader15());
276
                _instance.put(DwgMeshPolyline.class, "15", new DwgMeshReader15());
277
                _instance.put(DwgVertexMesh.class, "15", new DwgVertexMeshReader15());
278

    
279
                //READERS FOR DWG V13 AND V14
280
                _instance.put(DwgArc.class, "1314", new DwgArcReader1314());
281
                _instance.put(DwgAttdef.class, "1314", new DwgAttdefReader1314());
282
                _instance.put(DwgAttrib.class, "1314", new DwgAttribReader1314());
283
                _instance.put(DwgBlock.class, "1314", new DwgBlockReader1314());
284
                _instance.put(DwgBlockControl.class, "1314", new DwgBlockControlReader1314());
285
                _instance.put(DwgBlockHeader.class, "1314", new DwgBlockHeaderReader1314());
286
                _instance.put(DwgCircle.class, "1314", new DwgCircleReader1314());
287
                _instance.put(DwgDictionary.class, "1314", new DwgDictionaryReader1314());
288
                _instance.put(DwgDictionaryVar.class, "1314", new DwgDictionaryVarReader1314());
289
                _instance.put(DwgDimOrd.class, "1314", new DwgDimOrdReader1314());
290
                _instance.put(DwgEllipse.class, "1314", new DwgEllipseReader1314());
291
                _instance.put(DwgEndblk.class, "1314", new DwgEndBlkReader1314());
292
                _instance.put(DwgFace3D.class, "1314", new DwgFace3DReader1314());
293
                _instance.put(DwgHatch.class, "1314", new DwgHatchReader1314());
294
                _instance.put(DwgIdBuffer.class, "1314", new DwgIdBufferReader1314());
295
                _instance.put(DwgImageDefReactor.class, "1314", new DwgImageDefReactor1314());
296
                _instance.put(DwgImageDef.class, "1314", new DwgImageDefReader1314());
297
                _instance.put(DwgImage.class, "1314", new DwgImageReader1314());
298
                _instance.put(DwgInsert.class, "1314", new DwgInsertReader1314());
299
                _instance.put(DwgLayer.class, "1314", new DwgLayerReader1314());
300
                _instance.put(DwgLayerControl.class, "1314", new DwgLayerControlReader1314());
301
                _instance.put(DwgLayerIndex.class, "1314", new DwgLayerIndexReader1314());
302
                _instance.put(DwgLine.class, "1314", new DwgLineReader1314());
303
                _instance.put(DwgLinearDimension.class, "1314", new DwgLinearDimensionReader1314());
304
                _instance.put(DwgLwPolyline.class, "1314", new DwgLwPolylineReader1314());
305
                _instance.put(DwgMeshPolyline.class, "1314", new DwgMeshReader1314());
306
                _instance.put(DwgMinsert.class, "1314", new DwgMinsertReader1314());
307
                _instance.put(DwgMText.class, "1314", new DwgMTextReader1314());
308
                _instance.put(DwgOle2Frame.class, "1314", new DwgOle2FrameReader1314());
309
                _instance.put(DwgPFacePolyline.class, "1314", new DwgPFaceReader1314());
310
                _instance.put(DwgPoint.class, "1314", new DwgPointReader1314());
311
                _instance.put(DwgPolyline2D.class, "1314", new DwgPolyline2DReader1314());
312
                _instance.put(DwgPolyline3D.class, "1314", new DwgPolyline3DReader1314());
313
                _instance.put(DwgRasterVariables.class, "1314", new DwgRasterVariablesReader1314());
314
                _instance.put(DwgSeqend.class, "1314", new DwgSeqEndReader1314());
315
                _instance.put(DwgSortEntStable.class, "1314", new DwgSortEntsTableReader1314());
316
//                _instance.put(DwgSolid.class, "1314", new DwgSolidReader1314());
317
                _instance.put(DwgSpline.class, "1314", new DwgSplineReader1314());
318
                _instance.put(DwgText.class, "1314", new DwgTextReader1314());
319
                _instance.put(DwgVertex2D.class, "1314", new DwgVertex2DReader1314());
320
                _instance.put(DwgVertex3D.class, "1314", new DwgVertex3DReader1314());
321
                _instance.put(DwgXRecord.class, "1314", new DwgXrecordReader1314());
322
                _instance.put(DwgDictionary.class, "1314", new DwgDictionaryReader1314());
323
                _instance.put(DwgVertexPFace.class, "1314", new DwgVertexPFaceReader1314());
324
                _instance.put(DwgVertexPFaceFace.class, "1314", new DwgVertexPFaceFaceReader1314());
325
                _instance.put(DwgVertexMesh.class, "1314", new DwgVertexMeshReader1314());
326
        
327
        }
328
        
329
        
330
        
331
        public final static DwgObjectReaderPool getInstance(){
332
                return _instance;
333
        }
334
        private DwgObjectReaderPool(){
335
                obj_readers = new HashMap();
336
        }
337
        
338
        /**Get the specific reader for an object
339
         * 
340
         * @param obj Object we want to read
341
         * @param dwgVersion version of dwg file
342
         * @return The specific reader
343
         */
344
        public IDwgObjectReader get(DwgObject obj, String dwgVersion){
345
                
346
                IDwgObjectReader reader = (IDwgObjectReader) obj_readers.
347
                                get(obj.getClass().getName() + dwgVersion);
348
//                if(reader == null)
349
//                        throw new RuntimeException("No se encuentra la clase para leer "+obj.getClass().getName());
350
                return reader;
351
                
352
        }
353
        
354
        /**
355
         * Stores in a map the different readers for objects
356
         * @param dwgObjClass Object's class
357
         * @param dwgVersion version of dwg file
358
         * @param reader Specific reader for the object
359
         */
360
        public void put(Class dwgObjClass, String dwgVersion, IDwgObjectReader reader){
361
                if(DwgObject.class.isAssignableFrom(dwgObjClass))
362
                        obj_readers.put(dwgObjClass.getName()+ dwgVersion, reader);
363
                else
364
                        throw new RuntimeException("Este pool solo admite como entrada clases de entidad de dibujo gr?fica");
365
        }
366
        
367
}