#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 CodeWorker v3.10.4 from CWscript2HTML.cwp.