1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package net.sf.zel.instr;
20
21 import net.sf.zel.vm.*;
22 import java.io.IOException;
23 import java.io.ObjectInputStream;
24
25
26
27
28
29
30 public final class IN extends Instruction
31 {
32 private static final long serialVersionUID = 8486583432881741964L;
33
34 private IN(){};
35
36 public void execute(ExecutionContext context) throws ZExecutionException
37 {
38 ObjectInputStream ois = null;
39 try
40 {
41 ois = new ObjectInputStream(context.in);
42 context.stack.push(ois.readObject());
43 context.ip++;
44 } catch (IOException ex)
45 {
46 throw new ZExecutionException("IO error when reading from input Stream", ex, context);
47 } catch (ClassNotFoundException ex)
48 {
49 throw new ZExecutionException("Unsupported object in stream", ex, context);
50 }
51 }
52
53
54
55 public static final Instruction instance = new IN();
56
57 }