Statistics
| Revision:

root / trunk / libraries / libDwg / src / com / iver / cit / jdwglib / dwg / readers / objreaders / v1314 / DwgBlockControlReader1314.java @ 10858

History | View | Annotate | Download (2 KB)

1
/*
2
 * Created on 25-ene-2007 by azabala
3
 *
4
 */
5
package com.iver.cit.jdwglib.dwg.readers.objreaders.v1314;
6

    
7
import java.util.List;
8
import java.util.Vector;
9

    
10
import com.iver.cit.jdwglib.dwg.CorruptedDwgEntityException;
11
import com.iver.cit.jdwglib.dwg.DwgHandleReference;
12
import com.iver.cit.jdwglib.dwg.DwgObject;
13
import com.iver.cit.jdwglib.dwg.DwgUtil;
14
import com.iver.cit.jdwglib.dwg.objects.DwgBlockControl;
15

    
16
/**
17
 * @author alzabord
18
 */
19
public class DwgBlockControlReader1314 extends AbstractDwg1314Reader{
20

    
21
        /* (non-Javadoc)
22
         * @see com.iver.cit.jdwglib.dwg.readers.IDwgObjectReader#readSpecificObj(int[], int, com.iver.cit.jdwglib.dwg.DwgObject)
23
         */
24
        public void readSpecificObj(int[] data, int offset, DwgObject dwgObj) throws RuntimeException, CorruptedDwgEntityException {
25
                 if(! (dwgObj instanceof DwgBlockControl))
26
                            throw new RuntimeException("ArcReader 14 solo puede leer DwgBlockControl");
27
                 DwgBlockControl blk = (DwgBlockControl) dwgObj;
28
                 int bitPos = offset;
29
                 
30
                 List val = DwgUtil.getBitLong(data, bitPos);
31
                 bitPos = ((Integer) val.get(0)).intValue();
32
                 int numReactors = ((Integer) val.get(1)).intValue();
33
                 blk.setNumReactors(numReactors);
34
                 
35
                 val = DwgUtil.getBitShort(data, bitPos);
36
                 bitPos = ((Integer) val.get(0)).intValue();
37
                 int numHdl = ((Integer) val.get(1)).intValue();
38
                 
39
                 DwgHandleReference handle = new DwgHandleReference();
40
                 bitPos = handle.read(data, bitPos);
41
                 blk.setNullHandle(handle);
42
                 
43
                 handle = new DwgHandleReference();
44
                 bitPos = handle.read(data, bitPos);
45
                 blk.setXDicObjHandle(handle);
46
                 
47
                 if(numHdl > 0){
48
                         Vector handles = new Vector();
49
                         for(int i = 0; i < numHdl; i++){
50
                                 handle = new DwgHandleReference();
51
                                 bitPos = handle.read(data, bitPos);
52
                                 handles.add(handle);
53
                         }
54
                         blk.setCode2Handles(handles);
55
                 }
56
                 
57
                 handle = new DwgHandleReference();
58
                 bitPos = handle.read(data, bitPos);
59
                 blk.setModelSpaceHandle(handle);
60
                 
61
                 handle = new DwgHandleReference();
62
                 bitPos = handle.read(data, bitPos);
63
                 blk.setPaperSpaceHandle(handle);
64
        }
65
}