#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.