public PhantomType(RandomAccessFile is) throws IOException, PlcException {
    _class_expression = _container_class_expression = null;
    _class = _container_class = null;
    _is_void = _is_known = _is_int = _is_string = _is_long = _is_float = _is_double = false;

    boolean _is_container = Fileops.get_int32(is) != 0;
    String main_class_name = Fileops.get_string(is);
    String contained_class_name = Fileops.get_string(is);

    if (_is_container) {
      if (!(contained_class_name.equals(""))) {
        _class = new PhantomClass(contained_class_name);
        _is_known = true;
      }
      if (!(main_class_name.equals(""))) {
        _container_class = new PhantomClass(main_class_name);
        _is_known = true;
      }
    } else {
      if (!(main_class_name.equals(""))) {
        _class = new PhantomClass(main_class_name);
        _is_known = true;
      }
    }

    _is_void = main_class_name.equals(".internal.void");
    _is_int = main_class_name.equals(".internal.int");
    _is_long = main_class_name.equals(".internal.long");
    _is_float = main_class_name.equals(".internal.float");
    _is_double = main_class_name.equals(".internal.double");
    _is_string = main_class_name.equals(".internal.string");
  }
 public void save_to_file(RandomAccessFile os) throws IOException {
   Fileops.put_int32(os, is_container() ? 1 : 0);
   Fileops.put_string_bin(os, get_main_class_name());
   Fileops.put_string_bin(os, get_contained_class_name());
 }