public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
   this.expr = in.readUTF();
   String type = in.readUTF();
   if (!"".equals(type)) {
     this.expectedType = ReflectionUtil.forName(type);
   }
   this.paramTypes = ReflectionUtil.toTypeArray(((String[]) in.readObject()));
 }
 public void writeExternal(ObjectOutput out) throws IOException {
   out.writeUTF(this.expr);
   out.writeUTF((this.expectedType != null) ? this.expectedType.getName() : "");
   out.writeObject(ReflectionUtil.toTypeNameArray(this.paramTypes));
 }