Statistics
| Revision:

root / trunk / libraries / libDwg / src / com / iver / cit / jdwglib / dwg / readers / objreaders / v15 / DwgDictionaryReader15.java @ 10054

History | View | Annotate | Download (2.43 KB)

1
package com.iver.cit.jdwglib.dwg.readers.objreaders.v15;
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 DwgDictionaryReader15 extends AbstractDwg15Reader{
11

    
12
        public void readSpecificObj(int[] data, int offset, DwgObject dwgObj) {
13
                // TODO Auto-generated method stub
14
                if(! (dwgObj instanceof DwgDictionary))
15
                        throw new RuntimeException("DictionaryReader15 solo puede leer DwgDictionary");
16
                DwgDictionary dict = (DwgDictionary) dwgObj;
17
                try {
18
                        //System.out.println("LEYENDO UN DICCIONARIO");
19
                        int bitPos = offset;
20
                        ArrayList v = DwgUtil.getBitShort(data, bitPos);
21
                        bitPos = ((Integer)v.get(0)).intValue();
22
                        int numReactors = ((Integer)v.get(1)).intValue();
23
                        dict.setNumReactors(numReactors);
24
                        //System.out.println("numReactors="+numReactors);
25
                        
26
                        v = DwgUtil.getBitLong(data, bitPos);
27
                        bitPos = ((Integer)v.get(0)).intValue();
28
                        int numItems = ((Integer)v.get(1)).intValue();
29
                        //System.out.println("numItems="+numItems);
30
                        
31
                        
32
                        v = DwgUtil.getBitShort(data, bitPos);
33
                        bitPos = ((Integer)v.get(0)).intValue();
34
                        int cloningFlag = ((Integer)v.get(1)).intValue();
35
                        dict.setCloningFlag(cloningFlag);
36
                        //System.out.println("cloningFlag="+cloningFlag);
37
                        
38
                        v = DwgUtil.getRawChar(data, bitPos);
39
                        bitPos = ((Integer)v.get(0)).intValue();
40
                        int hardOwnerFlag = ((Integer)v.get(1)).intValue();
41
                        dict.setHardOwnerFlag(hardOwnerFlag);
42
                        //System.out.println("hardOwnerFlag="+hardOwnerFlag);
43
                        
44
                        int handleCode;
45
                        int handleOffset;
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
                                //System.out.println("ENTRADA DE DICCIONARIO text= "+entradasTexto.get(i)+" handleCode ="+handle.getCode()+" handleOffset ="+handle.getOffset());
58
                                // A la vez que leemos los handles, rellenamos el diccionario.
59
                                dict.put(entradasTexto.get(i),handle);
60
                        }
61
                        //System.out.println("map.size ="+dict.size());
62
                }catch (Exception e){
63
                        System.out.println("Se ha producido una excepion leyendo un diccionario."+e.getMessage());
64
                }
65
        }
66
}