    #ifndef _@this.name@_h_
    #define _@this.name@_h_

    @
    setProtectedArea("USER INCLUDES");
    newFloatingLocation("INCLUDE FILES");
    @
    class @this.name@@
    if this.superClass {
        @ : public @this.superClass@@
        insertTextOnce(getFloatingLocation("INCLUDE FILES"), "#include \"" + this.superClass + ".h\"" + endl());
    }
    @ {
        private:
            // ATTRIBUTES
    @
    foreach i in this.attributes {
        if i.type.name == "string"
            insertTextOnce(getFloatingLocation("INCLUDE FILES"), "#include <string>" + endl());
        if i.type.isArray
            insertTextOnce(getFloatingLocation("INCLUDE FILES"), "#include <vector>" + endl());
        if i.type.isObject
            insertTextOnce(getFloatingLocation("INCLUDE FILES"),
                        "class " + i.type.name + ";" + endl());
        @        @getCppType(i.type)@ @i.name@_;
    @
    }
    @
        public:
            @this.name@();
            virtual ~@this.name@();

            // ACCESSORS
    @
    foreach i in this.attributes {
        @        inline @getCppReturnType(i.type)@ get_@i.name@() const { return @i.name@_; }
            inline void set_@i.name@(@getCppReturnType(i.type)@ @i.name@) { @i.name@_ = @i.name@; }
    @
    }
    @
    @
    setProtectedArea("USER METHODS");
    @};

    #endif

Generated by v4.2 from CWscript2HTML.cwp.