hgl 0.5.25
A compiler/interpreter suite for developing images
Protected Member Functions | List of all members
HGL::Type::NonEmptyType Class Reference

Convenience base class to add a validity check on empty types. More...

#include "nonemptytype.h"

Inheritance diagram for HGL::Type::NonEmptyType:
[legend]

Protected Member Functions

virtual bool isValid () const
 Checks if the type is valid. More...
 
- Protected Member Functions inherited from HGL::Type::TypeBase
virtual ITypeattachType (IType *type, const TYPELIST::iterator &before, bool check=true) throw (Exception::AttachException)
 Attaches a child at the position before. More...
 
virtual IType::Ptr clone () const throw (Exception::CloneNotSupportedException)
 Creates a clone of the type. More...
 
virtual const std::string & getDescription () const
 Gets the description of the type. More...
 
virtual const ITypegetRoot (const IType &type) const
 Get the root of a type. More...
 
virtual std::string getTypeName () const
 Displayable name of the IType. More...
 
virtual operator float () const throw (Exception::ReferenceException, Exception::InvalidExpressionException)
 Converts the type into a float More...
 
virtual ITyperesolve (const std::string &id) const
 Resolves a type by its ID. More...
 
virtual void setParent (IType *parent)
 Set parent of the type. More...
 

Additional Inherited Members

- Public Types inherited from HGL::IType
enum  SERIALID { ,
  NOTSERIALIZEABLE = -1,
  SASSIGNMENTOPERATOR,
  SDEBUGPROCEDURE,
  SELLIPSE,
  SEXPRESSIONPARAM,
  SFILL,
  SFLOATPARAM,
  SLINE,
  SMAINSEGMENT,
  SNAMEDPARAM,
  SOBJECTSSEGMENT,
  SPARAMSECTION,
  SPOINT,
  SPOLY,
  SPROCCALL,
  SPROCEDURE,
  SPROCEDURESSEGMENT,
  SPROCINITSTATEMENT,
  SPROJECT,
  SREFERENCEPARAM,
  SRENDERPROCEDURE,
  SSTDLIBCALL,
  SSTRINGPARAM,
  STEXT,
  SVECTOR2D,
  SRENDERCALLBACK,
  SSRENDERCALLBACK,
  SVIRTUALGROUP,
  SCOMMENT,
  SCURVE,
  SSIGNATURE,
  SINCLUDE
}
 Enum of the serializeable objects. More...
 
typedef std::deque< uint8_t > BUFFER
 Buffer of the serialized data.
 
typedef std::list< PtrTYPELIST
 List of attached IType instances.
 
- Public Member Functions inherited from HGL::Type::TypeBase
ITypeattachType (IType *type, bool check=true) throw (Exception::AttachException)
 Attach child objects to the IType at end of list. More...
 
virtual IType::iterator begin ()
 Gets the iterator to the begin over this type's attached types. More...
 
virtual void detachType (IType *type)
 Detaches a child from the IType. More...
 
virtual IType::iterator end ()
 Gets the iterator to the end over this type's attached types. More...
 
virtual const TYPELISTgetAttachedTypes () const
 Returns all attached IType instances. More...
 
virtual BOUNDINGBOX getBoundingBox () const
 Gets the bounding box of the type. More...
 
virtual const std::string & getId () const
 Gets the identifier. More...
 
virtual ITypegetParent () const
 Returns the parent IType. More...
 
virtual bool isNull () const
 Checks if the type is null type. More...
 
virtual void setDescription (const std::string &desc)
 Sets the description of the type. More...
 
virtual void setId (const std::string &id)
 Sets the identifier. More...
 
- Public Member Functions inherited from HGL::IType
virtual operator iterator ()=0
 Gets the iterator over this type's attached types. More...
 
virtual SERIALID getSerialID () const =0
 Gets the serialization ID of the object. More...
 

Detailed Description

Convenience base class to add a validity check on empty types.

This class simply extends TypeBase::isValid by checking if the type has attached types and returns false if not.

Author
Heiko Schäfer heiko.nosp@m.@hgl.nosp@m..rang.nosp@m.un.d.nosp@m.e

Member Function Documentation

bool NonEmptyType::isValid ( ) const
protectedvirtual

Checks if the type is valid.

Note
this method returns false if the type has no attached subtypes. A type is valid
  1. if all attached types are allowed for this type, if not the type is invalid
  2. if all attached types itself are valid, if not the type is invalid

Subclasses can add more checks if neccessary.

Returns
true if the type is valid, false otherwise

Reimplemented from HGL::Type::TypeBase.

Reimplemented in HGL::Type::Text, HGL::Type::Ellipse, and HGL::Type::Project.

References HGL::Type::TypeBase::getAttachedTypes(), and HGL::Type::TypeBase::isValid().

Referenced by HGL::Type::Ellipse::isValid(), HGL::Type::Project::isValid(), and HGL::Type::Text::isValid().