// create a new POCast each time since we
// maintain a state variable per POCast object
// indicating if cast is really required
POCast newOp = new POCast(new OperatorKey("", r.nextLong()), -1);
plan = constructPlan(newOp);
Tuple t = tf.newTuple();
Map<String, Object> input = new HashMap<String, Object>();
input.put("key1", "value1");
input.put("key2", "value2");
t.append(input);
plan.attachInput(t);