text: /*
   * File automatically generated by
   * gengen 1.3 by Lorenzo Bettini
   * http://www.gnu.org/software/gengen
   */
  
  #ifndef OPTION_ARG_GEN_CLASS_H
  #define OPTION_ARG_GEN_CLASS_H
  
  #include <string>
  #include <iostream>
  
  using std::string;
  using std::ostream;
  
  class option_arg_gen_class
  {
   protected:
    bool default_on;
    string default_value;
    string desc;
    bool flag_arg;
    bool has_arg;
    bool has_default;
    bool has_enum;
    bool long_long_arg;
    string longtype;
    bool multiple;
    string name;
    string origtype;
    string type;
  
   public:
    option_arg_gen_class() :
      default_on (false), flag_arg (false), has_arg (false), has_default (false), has_enum (false), long_long_arg (false), multiple (false)
    {
    }
  
    option_arg_gen_class(bool _default_on, const string &_default_value, const string &_desc, bool _flag_arg, bool _has_arg, bool _has_default, bool _has_enum, bool _long_long_arg, const string &_longtype, bool _multiple, const string &_name, const string &_origtype, const string &_type) :
      default_on (_default_on), default_value (_default_value), desc (_desc), flag_arg (_flag_arg), has_arg (_has_arg), has_default (_has_default), has_enum (_has_enum), long_long_arg (_long_long_arg), longtype (_longtype), multiple (_multiple), name (_name), origtype (_origtype), type (_type)
    {
    }
  
    static void
    generate_string(const string &s, ostream &stream, unsigned int indent)
    {
      if (!indent || s.find('\n') == string::npos)
        {
          stream << s;
          return;
        }
  
      string::size_type pos;
      string::size_type start = 0;
      string ind (indent, ' ');
      while ( (pos=s.find('\n', start)) != string::npos)
        {
          stream << s.substr (start, (pos+1)-start);
          start = pos+1;
          if (start+1 <= s.size ())
            stream << ind;
        }
      if (start+1 <= s.size ())
        stream << s.substr (start);
    }
  
    void set_default_on(bool _default_on)
    {
      default_on = _default_on;
    }
  
    void set_default_value(const string &_default_value)
    {
      default_value = _default_value;
    }
  
    void set_desc(const string &_desc)
    {
      desc = _desc;
    }
  
    void set_flag_arg(bool _flag_arg)
    {
      flag_arg = _flag_arg;
    }
  
    void set_has_arg(bool _has_arg)
    {
      has_arg = _has_arg;
    }
  
    void set_has_default(bool _has_default)
    {
      has_default = _has_default;
    }
  
    void set_has_enum(bool _has_enum)
    {
      has_enum = _has_enum;
    }
  
    void set_long_long_arg(bool _long_long_arg)
    {
      long_long_arg = _long_long_arg;
    }
  
    void set_longtype(const string &_longtype)
    {
      longtype = _longtype;
    }
  
    void set_multiple(bool _multiple)
    {
      multiple = _multiple;
    }
  
    void set_name(const string &_name)
    {
      name = _name;
    }
  
    void set_origtype(const string &_origtype)
    {
      origtype = _origtype;
    }
  
    void set_type(const string &_type)
    {
      type = _type;
    }
  
    void generate_option_arg(ostream &stream, unsigned int indent = 0);
  
  };
  
  #endif // OPTION_ARG_GEN_CLASS_H
  