Revision 10103 trunk/libraries/libDwg/src/com/iver/cit/jdwglib/dwg/readers/objreaders/v1314/DwgIdBufferReader1314.java

View differences:

DwgIdBufferReader1314.java
4 4
 */
5 5
package com.iver.cit.jdwglib.dwg.readers.objreaders.v1314;
6 6

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

  
7 10
import com.iver.cit.jdwglib.dwg.CorruptedDwgEntityException;
11
import com.iver.cit.jdwglib.dwg.DwgHandleReference;
8 12
import com.iver.cit.jdwglib.dwg.DwgObject;
13
import com.iver.cit.jdwglib.dwg.DwgUtil;
14
import com.iver.cit.jdwglib.dwg.objects.DwgIdBuffer;
9 15

  
10 16
/**
11 17
 * @author alzabord
......
20 26
	 */
21 27
	public void readSpecificObj(int[] data, int offset, DwgObject dwgObj)
22 28
			throws RuntimeException, CorruptedDwgEntityException {
23
		// TODO Auto-generated method stub
24

  
29
		 if(! (dwgObj instanceof DwgIdBuffer))
30
		    	throw new RuntimeException("ArcReader 14 solo puede leer DwgIdBuffer");
31
		DwgIdBuffer idB = (DwgIdBuffer) dwgObj;
32
		int bitPos = offset;
33
		
34
		List val = DwgUtil.getBitLong(data, bitPos);
35
		bitPos = ((Integer) val.get(0)).intValue();
36
		int numReactors = ((Integer) val.get(1)).intValue();
37
		idB.setNumReactors(numReactors);
38
		
39
		val = DwgUtil.getRawChar(data, bitPos);
40
		bitPos = ((Integer) val.get(0)).intValue();
41
		int rcharVal = ((Integer) val.get(1)).intValue();
42
		
43
		val = DwgUtil.getBitLong(data, bitPos);
44
		bitPos = ((Integer) val.get(0)).intValue();
45
		int nids = ((Integer) val.get(1)).intValue();
46
		
47
		DwgHandleReference handle = new DwgHandleReference();
48
		bitPos = handle.read(data, bitPos);
49
		idB.setParentHandle(handle);
50
		
51
		for(int i = 0; i < numReactors; i++){
52
			handle = new DwgHandleReference();
53
			bitPos = handle.read(data, bitPos);
54
			idB.addReactorHandle(handle);
55
		}
56
	
57
		handle = new DwgHandleReference();
58
		bitPos = handle.read(data, bitPos);
59
		idB.setXDicObjHandle(handle);
60
	    
61
		if(nids > 0){
62
			List handles = new ArrayList();
63
			for(int i = 0; i < nids; i++){
64
				handle = new DwgHandleReference();
65
				bitPos = handle.read(data, bitPos);
66
				handles.add(handle);
67
			}
68
			idB.setObjidHandles(handles);
69
		}
25 70
	}
26 71

  
27 72
}

Also available in: Unified diff