| 21 | } |
| 22 | |
| 23 | class LConstantType50 extends LConstantType { |
| 24 | |
| 25 | @Override |
| 26 | public LObject parse(ByteBuffer buffer, BHeader header) { |
| 27 | int type = 0xFF & buffer.get(); |
| 28 | if(header.debug) { |
| 29 | System.out.print("-- parsing <constant>, type is "); |
| 30 | switch(type) { |
| 31 | case 0: |
| 32 | System.out.println("<nil>"); |
| 33 | break; |
| 34 | case 1: |
| 35 | System.out.println("<boolean>"); |
| 36 | break; |
| 37 | case 3: |
| 38 | System.out.println("<number>"); |
| 39 | break; |
| 40 | case 4: |
| 41 | System.out.println("<string>"); |
| 42 | break; |
| 43 | default: |
| 44 | System.out.println("illegal " + type); |
| 45 | break; |
| 46 | } |
| 47 | } |
| 48 | switch(type) { |
| 49 | case 0: |
| 50 | return LNil.NIL; |
| 51 | case 1: |
| 52 | return header.bool.parse(buffer, header); |
| 53 | case 3: |
| 54 | return header.number.parse(buffer, header); |
| 55 | case 4: |
| 56 | return header.string.parse(buffer, header); |
| 57 | default: |
| 58 | throw new IllegalStateException(); |
| 59 | } |
| 60 | } |
| 61 | |
| 62 | @Override |
| 63 | public void write(OutputStream out, BHeader header, LObject object) throws IOException { |
| 64 | if(object instanceof LNil) { |
| 65 | out.write(0); |
| 66 | } else if(object instanceof LBoolean) { |
| 67 | out.write(1); |
| 68 | header.bool.write(out, header, (LBoolean)object); |
| 69 | } else if(object instanceof LNumber) { |
| 70 | out.write(3); |
| 71 | header.number.write(out, header, (LNumber)object); |
| 72 | } else if(object instanceof LString) { |
| 73 | out.write(4); |
| 74 | header.string.write(out, header, (LString)object); |
| 75 | } else { |
| 76 | throw new IllegalStateException(); |
| 77 | } |
| 78 | } |
| 79 | |
| 80 | } |
nothing calls this directly
no outgoing calls
no test coverage detected