// CodeGear C++Builder
// Copyright (c) 1995, 2014 by Embarcadero Technologies, Inc.
// All rights reserved

// (DO NOT EDIT: machine generated header) 'xpgParseContentType.pas' rev: 28.00 (Windows)

#ifndef XpgparsecontenttypeHPP
#define XpgparsecontenttypeHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#pragma pack(push,8)
#include <System.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.Classes.hpp>	// Pascal unit
#include <System.SysUtils.hpp>	// Pascal unit
#include <System.Contnrs.hpp>	// Pascal unit
#include <System.IniFiles.hpp>	// Pascal unit
#include <xpgPUtils.hpp>	// Pascal unit
#include <xpgPLists.hpp>	// Pascal unit
#include <xpgPXMLUtils.hpp>	// Pascal unit
#include <XLSUtils5.hpp>	// Pascal unit
#include <xpgPXML.hpp>	// Pascal unit

//-- user supplied -----------------------------------------------------------

namespace Xpgparsecontenttype
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TXPGDocBase;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TXPGDocBase : public System::TObject
{
	typedef System::TObject inherited;
	
protected:
	Xpgputils::TXpgPErrors* FErrors;
	
public:
	__property Xpgputils::TXpgPErrors* Errors = {read=FErrors};
public:
	/* TObject.Create */ inline __fastcall TXPGDocBase(void) : System::TObject() { }
	/* TObject.Destroy */ inline __fastcall virtual ~TXPGDocBase(void) { }
	
};

#pragma pack(pop)

class DELPHICLASS TXPGBase;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TXPGBase : public System::TObject
{
	typedef System::TObject inherited;
	
protected:
	TXPGDocBase* FOwner;
	int FElementCount;
	int FAttributeCount;
	Xpgpxmlutils::TXpgAssigneds FAssigneds;
	virtual int __fastcall CheckAssigned(void);
	bool __fastcall Assigned(void);
	virtual TXPGBase* __fastcall HandleElement(Xpgpxml::TXpgReadXML* AReader);
	virtual void __fastcall AssignAttributes(Xpgpxmlutils::TXpgXMLAttributeList* AAttributes);
	virtual void __fastcall AfterTag(void);
	__classmethod void __fastcall AddEnums();
	__classmethod int __fastcall StrToEnum(System::UnicodeString AValue);
	__classmethod int __fastcall StrToEnumDef(System::UnicodeString AValue, int ADefault);
	__classmethod bool __fastcall TryStrToEnum(System::UnicodeString AValue, System::UnicodeString AText, System::UnicodeString *AEnumNames, const int AEnumNames_High, System::PInteger APtrInt);
	
public:
	bool __fastcall Available(void);
	__property int ElementCount = {read=FElementCount, write=FElementCount, nodefault};
	__property int AttributeCount = {read=FAttributeCount, write=FAttributeCount, nodefault};
	__property Xpgpxmlutils::TXpgAssigneds Assigneds = {read=FAssigneds, write=FAssigneds, nodefault};
public:
	/* TObject.Create */ inline __fastcall TXPGBase(void) : System::TObject() { }
	/* TObject.Destroy */ inline __fastcall virtual ~TXPGBase(void) { }
	
};

#pragma pack(pop)

class DELPHICLASS TXPGBaseObjectList;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TXPGBaseObjectList : public System::Contnrs::TObjectList
{
	typedef System::Contnrs::TObjectList inherited;
	
protected:
	TXPGDocBase* FOwner;
	bool FAssigned;
	TXPGBase* __fastcall GetItems(int Index);
	
public:
	__fastcall TXPGBaseObjectList(TXPGDocBase* AOwner);
	__property TXPGBase* Items[int Index] = {read=GetItems};
public:
	/* TList.Destroy */ inline __fastcall virtual ~TXPGBaseObjectList(void) { }
	
};

#pragma pack(pop)

class DELPHICLASS TXPGReader;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TXPGReader : public Xpgpxml::TXpgReadXML
{
	typedef Xpgpxml::TXpgReadXML inherited;
	
protected:
	TXPGBase* FCurrent;
	System::Contnrs::TObjectStack* FStack;
	Xpgputils::TXpgPErrors* FErrors;
	
public:
	__fastcall TXPGReader(Xpgputils::TXpgPErrors* AErrors, TXPGBase* ARoot);
	__fastcall virtual ~TXPGReader(void);
	virtual void __fastcall BeginTag(void);
	virtual void __fastcall EndTag(void);
};

#pragma pack(pop)

class DELPHICLASS TCT_Default;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TCT_Default : public TXPGBase
{
	typedef TXPGBase inherited;
	
protected:
	System::UnicodeString FExtension;
	System::UnicodeString FContentType;
	virtual int __fastcall CheckAssigned(void);
	void __fastcall Write(Xpgpxml::TXpgWriteXML* AWriter);
	void __fastcall WriteAttributes(Xpgpxml::TXpgWriteXML* AWriter);
	virtual void __fastcall AssignAttributes(Xpgpxmlutils::TXpgXMLAttributeList* AAttributes);
	
public:
	__fastcall TCT_Default(TXPGDocBase* AOwner);
	__fastcall virtual ~TCT_Default(void);
	void __fastcall Clear(void);
	__property System::UnicodeString Extension = {read=FExtension, write=FExtension};
	__property System::UnicodeString ContentType = {read=FContentType, write=FContentType};
};

#pragma pack(pop)

class DELPHICLASS TCT_DefaultXpgList;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TCT_DefaultXpgList : public TXPGBaseObjectList
{
	typedef TXPGBaseObjectList inherited;
	
public:
	TCT_Default* operator[](int Index) { return Items[Index]; }
	
protected:
	HIDESBASE TCT_Default* __fastcall GetItems(int Index);
	
public:
	HIDESBASE TCT_Default* __fastcall Add(void);
	int __fastcall CheckAssigned(void);
	void __fastcall Write(Xpgpxml::TXpgWriteXML* AWriter, System::UnicodeString AName);
	__property TCT_Default* Items[int Index] = {read=GetItems/*, default*/};
public:
	/* TXPGBaseObjectList.Create */ inline __fastcall TCT_DefaultXpgList(TXPGDocBase* AOwner) : TXPGBaseObjectList(AOwner) { }
	
public:
	/* TList.Destroy */ inline __fastcall virtual ~TCT_DefaultXpgList(void) { }
	
};

#pragma pack(pop)

class DELPHICLASS TCT_Override;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TCT_Override : public TXPGBase
{
	typedef TXPGBase inherited;
	
protected:
	System::UnicodeString FContentType;
	System::UnicodeString FPartName;
	virtual int __fastcall CheckAssigned(void);
	void __fastcall Write(Xpgpxml::TXpgWriteXML* AWriter);
	void __fastcall WriteAttributes(Xpgpxml::TXpgWriteXML* AWriter);
	virtual void __fastcall AssignAttributes(Xpgpxmlutils::TXpgXMLAttributeList* AAttributes);
	
public:
	__fastcall TCT_Override(TXPGDocBase* AOwner);
	__fastcall virtual ~TCT_Override(void);
	void __fastcall Clear(void);
	__property System::UnicodeString ContentType = {read=FContentType, write=FContentType};
	__property System::UnicodeString PartName = {read=FPartName, write=FPartName};
};

#pragma pack(pop)

class DELPHICLASS TCT_OverrideXpgList;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TCT_OverrideXpgList : public TXPGBaseObjectList
{
	typedef TXPGBaseObjectList inherited;
	
public:
	TCT_Override* operator[](int Index) { return Items[Index]; }
	
protected:
	HIDESBASE TCT_Override* __fastcall GetItems(int Index);
	
public:
	HIDESBASE TCT_Override* __fastcall Add(void);
	int __fastcall CheckAssigned(void);
	void __fastcall Write(Xpgpxml::TXpgWriteXML* AWriter, System::UnicodeString AName);
	__property TCT_Override* Items[int Index] = {read=GetItems/*, default*/};
public:
	/* TXPGBaseObjectList.Create */ inline __fastcall TCT_OverrideXpgList(TXPGDocBase* AOwner) : TXPGBaseObjectList(AOwner) { }
	
public:
	/* TList.Destroy */ inline __fastcall virtual ~TCT_OverrideXpgList(void) { }
	
};

#pragma pack(pop)

class DELPHICLASS TCT_Types;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TCT_Types : public TXPGBase
{
	typedef TXPGBase inherited;
	
protected:
	TCT_DefaultXpgList* FDefaultXpgList;
	TCT_OverrideXpgList* FOverrideXpgList;
	virtual int __fastcall CheckAssigned(void);
	virtual TXPGBase* __fastcall HandleElement(Xpgpxml::TXpgReadXML* AReader);
	void __fastcall Write(Xpgpxml::TXpgWriteXML* AWriter);
	
public:
	__fastcall TCT_Types(TXPGDocBase* AOwner);
	__fastcall virtual ~TCT_Types(void);
	void __fastcall Clear(void);
	__property TCT_DefaultXpgList* DefaultXpgList = {read=FDefaultXpgList};
	__property TCT_OverrideXpgList* OverrideXpgList = {read=FOverrideXpgList};
};

#pragma pack(pop)

class DELPHICLASS T__ROOT__;
#pragma pack(push,4)
class PASCALIMPLEMENTATION T__ROOT__ : public TXPGBase
{
	typedef TXPGBase inherited;
	
protected:
	Xpgplists::TStringXpgList* FRootAttributes;
	TCT_Default* FDefault;
	TCT_Override* FOverride;
	TCT_Types* FTypes;
	virtual int __fastcall CheckAssigned(void);
	virtual TXPGBase* __fastcall HandleElement(Xpgpxml::TXpgReadXML* AReader);
	void __fastcall Write(Xpgpxml::TXpgWriteXML* AWriter);
	
public:
	__fastcall T__ROOT__(TXPGDocBase* AOwner);
	__fastcall virtual ~T__ROOT__(void);
	void __fastcall Clear(void);
	__property Xpgplists::TStringXpgList* RootAttributes = {read=FRootAttributes};
	__property TCT_Default* Default = {read=FDefault};
	__property TCT_Override* Override = {read=FOverride};
	__property TCT_Types* Types = {read=FTypes};
};

#pragma pack(pop)

class DELPHICLASS TXPGDocContentType;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TXPGDocContentType : public TXPGDocBase
{
	typedef TXPGDocBase inherited;
	
protected:
	T__ROOT__* FRoot;
	TXPGReader* FReader;
	Xpgpxml::TXpgWriteXML* FWriter;
	TCT_Default* __fastcall GetDefault(void);
	TCT_Override* __fastcall GetOverride(void);
	TCT_Types* __fastcall GetTypes(void);
	
public:
	__fastcall TXPGDocContentType(void);
	__fastcall virtual ~TXPGDocContentType(void);
	void __fastcall LoadFromFile(System::UnicodeString AFilename);
	void __fastcall LoadFromStream(System::Classes::TStream* AStream);
	void __fastcall SaveToFile(System::UnicodeString AFilename);
	void __fastcall SaveToStream(System::Classes::TStream* AStream);
	__property T__ROOT__* Root = {read=FRoot};
	__property TCT_Default* Default = {read=GetDefault};
	__property TCT_Override* Override = {read=GetOverride};
	__property TCT_Types* Types = {read=GetTypes};
};

#pragma pack(pop)

//-- var, const, procedure ---------------------------------------------------
}	/* namespace Xpgparsecontenttype */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_XPGPARSECONTENTTYPE)
using namespace Xpgparsecontenttype;
#endif
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// XpgparsecontenttypeHPP
