123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216 |
- {
- This unit has been produced by ws_helper.
- Input unit name : "sdo_company".
- This unit name : "sdo_company".
- Date : "20/09/2007 16:32:08".
- }
- unit sdo_company;
- {$IFDEF FPC}
- {$mode objfpc} {$H+}
- {$ENDIF}
- {$IFNDEF FPC}
- {$DEFINE WST_RECORD_RTTI}
- {$ENDIF}
- interface
- uses SysUtils, Classes, TypInfo, base_service_intf, service_intf;
- const
- sNAME_SPACE = 'company.xsd';
- sUNIT_NAME = 'sdo_company';
- type
- // ID = unable to resolve this symbol.
- CompanyType_departmentsArray = class;
- CompanyType = class;
- DepartmentType_employeesArray = class;
- DepartmentType = class;
- EmployeeType = class;
- CompanyType = class(TBaseComplexRemotable)
- private
- Fdepartments : CompanyType_departmentsArray;
- Fname : string;
- FemployeeOfTheMonth : string;
- private
- function Hasname() : Boolean;
- function HasemployeeOfTheMonth() : Boolean;
- public
- constructor Create();override;
- destructor Destroy();override;
- published
- property departments : CompanyType_departmentsArray read Fdepartments write Fdepartments;
- property name : string read Fname write Fname stored Hasname;
- property employeeOfTheMonth : string read FemployeeOfTheMonth write FemployeeOfTheMonth stored HasemployeeOfTheMonth;
- end;
- DepartmentType = class(TBaseComplexRemotable)
- private
- Femployees : DepartmentType_employeesArray;
- Fname : string;
- Flocation : string;
- Fnumber : integer;
- private
- function Hasname() : Boolean;
- function Haslocation() : Boolean;
- function Hasnumber() : Boolean;
- public
- constructor Create();override;
- destructor Destroy();override;
- published
- property employees : DepartmentType_employeesArray read Femployees write Femployees;
- property name : string read Fname write Fname stored Hasname;
- property location : string read Flocation write Flocation stored Haslocation;
- property number : integer read Fnumber write Fnumber stored Hasnumber;
- end;
- EmployeeType = class(TBaseComplexRemotable)
- private
- Fname : string;
- FSN : ID;
- Fmanager : boolean;
- private
- function Hasname() : Boolean;
- function HasSN() : Boolean;
- function Hasmanager() : Boolean;
- published
- property name : string read Fname write Fname stored Hasname;
- property SN : ID read FSN write FSN stored HasSN;
- property manager : boolean read Fmanager write Fmanager stored Hasmanager;
- end;
- CompanyType_departmentsArray = class(TBaseObjectArrayRemotable)
- private
- function GetItem(AIndex: Integer): DepartmentType;
- public
- class function GetItemClass():TBaseRemotableClass;override;
- property Item[AIndex:Integer] : DepartmentType Read GetItem;Default;
- end;
- DepartmentType_employeesArray = class(TBaseObjectArrayRemotable)
- private
- function GetItem(AIndex: Integer): EmployeeType;
- public
- class function GetItemClass():TBaseRemotableClass;override;
- property Item[AIndex:Integer] : EmployeeType Read GetItem;Default;
- end;
- Implementation
- uses metadata_repository, record_rtti, wst_types;
- { CompanyType }
- constructor CompanyType.Create();
- begin
- inherited Create();
- Fdepartments := CompanyType_departmentsArray.Create();
- end;
- destructor CompanyType.Destroy();
- begin
- if Assigned(Fdepartments) then
- FreeAndNil(Fdepartments);
- inherited Destroy();
- end;
- function CompanyType.Hasname() : Boolean;
- begin
- Result := ( Fname <> '' );
- end;
- function CompanyType.HasemployeeOfTheMonth() : Boolean;
- begin
- Result := ( FemployeeOfTheMonth <> '' );
- end;
- { DepartmentType }
- constructor DepartmentType.Create();
- begin
- inherited Create();
- Femployees := DepartmentType_employeesArray.Create();
- end;
- destructor DepartmentType.Destroy();
- begin
- if Assigned(Femployees) then
- FreeAndNil(Femployees);
- inherited Destroy();
- end;
- function DepartmentType.Hasname() : Boolean;
- begin
- Result := ( Fname <> '' );
- end;
- function DepartmentType.Haslocation() : Boolean;
- begin
- Result := ( Flocation <> '' );
- end;
- function DepartmentType.Hasnumber() : Boolean;
- begin
- Result := ( Fnumber <> integer(0) );
- end;
- function EmployeeType.Hasname() : Boolean;
- begin
- Result := ( Fname <> '' );
- end;
- function EmployeeType.HasSN() : Boolean;
- begin
- Result := ( FSN <> ID(0) );
- end;
- function EmployeeType.Hasmanager() : Boolean;
- begin
- Result := ( Fmanager <> boolean(0) );
- end;
- { CompanyType_departmentsArray }
- function CompanyType_departmentsArray.GetItem(AIndex: Integer): DepartmentType;
- begin
- Result := Inherited GetItem(AIndex) As DepartmentType;
- end;
- class function CompanyType_departmentsArray.GetItemClass(): TBaseRemotableClass;
- begin
- Result:= DepartmentType;
- end;
- { DepartmentType_employeesArray }
- function DepartmentType_employeesArray.GetItem(AIndex: Integer): EmployeeType;
- begin
- Result := Inherited GetItem(AIndex) As EmployeeType;
- end;
- class function DepartmentType_employeesArray.GetItemClass(): TBaseRemotableClass;
- begin
- Result:= EmployeeType;
- end;
- initialization
- GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(CompanyType),'CompanyType');
- GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(DepartmentType),'DepartmentType');
- GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(EmployeeType),'EmployeeType');
- GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(CompanyType_departmentsArray),'CompanyType_departmentsArray');
- GetTypeRegistry().ItemByTypeInfo[TypeInfo(CompanyType_departmentsArray)].RegisterExternalPropertyName(sARRAY_STYLE,sEmbedded);
- GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(DepartmentType_employeesArray),'DepartmentType_employeesArray');
- GetTypeRegistry().ItemByTypeInfo[TypeInfo(DepartmentType_employeesArray)].RegisterExternalPropertyName(sARRAY_STYLE,sEmbedded);
- CompanyType.RegisterAttributeProperty('name');
- CompanyType.RegisterAttributeProperty('employeeOfTheMonth');
- DepartmentType.RegisterAttributeProperty('name');
- DepartmentType.RegisterAttributeProperty('location');
- DepartmentType.RegisterAttributeProperty('number');
- EmployeeType.RegisterAttributeProperty('name');
- EmployeeType.RegisterAttributeProperty('SN');
- EmployeeType.RegisterAttributeProperty('manager');
- End.
|