root / trunk / libraries / libDwg / src / com / iver / cit / jdwglib / dwg / readers / objreaders / v2004 / DwgDictionaryReader2004.java @ 23942
History | View | Annotate | Download (2.06 KB)
1 | 23942 | vcaballero | package com.iver.cit.jdwglib.dwg.readers.objreaders.v2004; |
---|---|---|---|
2 | |||
3 | import java.util.ArrayList; |
||
4 | |||
5 | import com.iver.cit.jdwglib.dwg.DwgHandleReference; |
||
6 | import com.iver.cit.jdwglib.dwg.DwgObject; |
||
7 | import com.iver.cit.jdwglib.dwg.DwgUtil; |
||
8 | import com.iver.cit.jdwglib.dwg.objects.DwgDictionary; |
||
9 | |||
10 | public class DwgDictionaryReader2004 extends AbstractDwg2004Reader{ |
||
11 | |||
12 | public void readSpecificObj(int[] data, int offset, DwgObject dwgObj) { |
||
13 | if(! (dwgObj instanceof DwgDictionary)) |
||
14 | throw new RuntimeException("DictionaryReader2004 solo puede leer DwgDictionary"); |
||
15 | DwgDictionary dict = (DwgDictionary) dwgObj; |
||
16 | try {
|
||
17 | int bitPos = offset;
|
||
18 | |||
19 | ArrayList v;
|
||
20 | |||
21 | v = DwgUtil.getBitShort(data, bitPos); |
||
22 | bitPos = ((Integer)v.get(0)).intValue(); |
||
23 | int numReactors = ((Integer)v.get(1)).intValue(); |
||
24 | dict.setNumReactors(numReactors); |
||
25 | |||
26 | v = DwgUtil.testBit(data, bitPos); |
||
27 | bitPos = ((Integer)v.get(0)).intValue(); |
||
28 | boolean XdicFlag = ((Boolean) v.get(1)).booleanValue(); |
||
29 | |||
30 | v = DwgUtil.getBitLong(data, bitPos); |
||
31 | bitPos = ((Integer)v.get(0)).intValue(); |
||
32 | int numItems = ((Integer)v.get(1)).intValue(); |
||
33 | |||
34 | v = DwgUtil.getBitShort(data, bitPos); |
||
35 | bitPos = ((Integer)v.get(0)).intValue(); |
||
36 | int cloningFlag = ((Integer)v.get(1)).intValue(); |
||
37 | dict.setCloningFlag(cloningFlag); |
||
38 | |||
39 | v = DwgUtil.getRawChar(data, bitPos); |
||
40 | bitPos = ((Integer)v.get(0)).intValue(); |
||
41 | int hardOwnerFlag = ((Integer)v.get(1)).intValue(); |
||
42 | dict.setHardOwnerFlag(hardOwnerFlag); |
||
43 | |||
44 | dict.inserta(); |
||
45 | |||
46 | ArrayList entradasTexto = new ArrayList(); |
||
47 | for(int i=0; i<numItems; i++){ |
||
48 | v = DwgUtil.getTextString(data, bitPos); |
||
49 | bitPos = ((Integer)v.get(0)).intValue(); |
||
50 | String text = ((String)v.get(1)); |
||
51 | entradasTexto.add(text); |
||
52 | } |
||
53 | DwgHandleReference handle; |
||
54 | for(int i=0; i<numItems; i++){ |
||
55 | handle = new DwgHandleReference();
|
||
56 | bitPos = handle.read(data, bitPos); |
||
57 | // A la vez que leemos los handles, rellenamos el diccionario.
|
||
58 | dict.put(entradasTexto.get(i),handle); |
||
59 | } |
||
60 | }catch (Exception e){ |
||
61 | System.out.println("Se ha producido una excepion leyendo un diccionario."+e.getMessage()); |
||
62 | } |
||
63 | } |
||
64 | } |