----------------------------------------------------------------------------
-- Site Schedule Model 
--
-- Mar, 1995   (Defined by RoadRobot Team
--		Written by Teresa Goncalves  Joao Paulo Pimentao - UNINOVA)
-- Aug, 1995   (Modified by Teresa Goncalves - UNINOVA
--			modify: EarthMovActivity, BaseCourseActivity,
--				BinderCourseActivity, SurfaceCourseActivity)
----------------------------------------------------------------------------

----------------------------------------------------------------------------
-- Activities --------------------------------------------------------------
----------------------------------------------------------------------------
ENTITY Activity
	ABSTRACT SUPERTYPE OF( ONEOF( BridgeConstActivity, TunnelConstActivity,
		ObstacleRmActivity, EarthMovActivity, DrainageActivity, 
		BaseCourseActivity, BinderCourseActivity, SurfaceCourseActivity,
		SupplworksActivity ));
	precedes,
	succeeds:	LIST [1:?] OF Activity;
	start,
	finish:		GMTTime;
	bootstrap:	GMTTime;
END_ENTITY;

TYPE ActivityType = ENUMERATION OF( NullActv, ArtOrEarthActv, BridgeActv,
				TunnelActv, ObstacleActv, EarthmovActv,
				DrainageActv, BasecourseActv, BinderCourseActv,
				SurfacecourseActv );
-- TYPE ActivityType = ENUMERATION OF( 1, 2, 3,
-- 				4, 5, 6,
-- 				7, 8, 9,
-- 				10 );
END_TYPE;

ENTITY BridgeConstActivity
	SUBTYPE OF( Activity );
	cellId:	BridgeConstCell;
END_ENTITY;

ENTITY TunnelConstActivity
	SUBTYPE OF( Activity );
	cellId:	TunnelConstCell;
END_ENTITY;

ENTITY ObstacleRmActivity
	SUBTYPE OF( Activity );
	cellId:	ObstacleRmCell;
END_ENTITY;

ENTITY EarthMovActivity
	SUBTYPE OF( Activity );
	cellId:	ExcavatingCell;
	profile:	surface_topography;
	geology:	LIST[0:?] OF subsoil_layer;
END_ENTITY;

ENTITY DrainageActivity
	SUBTYPE OF( Activity );
	cellId:	DrainageCell;
END_ENTITY;

ENTITY BaseCourseActivity
	SUBTYPE OF( Activity );
	cellId:	PavingCell;
	geometry:	road_geometry_list;
	quality:	quality_parameters;
	paving_material:	asphalt_mixture;
END_ENTITY;

ENTITY BinderCourseActivity
	SUBTYPE OF( Activity );
	cellId:	PavingCell;
	geometry:	road_geometry_list;
	quality:	quality_parameters;
	paving_material:	asphalt_mixture;
END_ENTITY;

ENTITY SurfaceCourseActivity
	SUBTYPE OF( Activity );
	cellId:	PavingCell;
	geometry:	road_geometry_list;
	quality:	quality_parameters;
	paving_material:	asphalt_mixture;
END_ENTITY;

ENTITY SupplworksActivity
	SUBTYPE OF( Activity );
	cellId:	SupplworksCell;
END_ENTITY;

----------------------------------------------------------------------------
-- Cells -------------------------------------------------------------------
----------------------------------------------------------------------------
ENTITY Cell
	ABSTRACT SUPERTYPE OF( ONEOF( BridgeConstCell, TunnelConstCell, 
			ObstacleRmCell, ExcavatingCell, DrainageCell, 
			PavingCell, SupplworksCell ));
	reqResources:	LIST [1:?] OF Resource;
END_ENTITY;

ENTITY BridgeConstCell
	SUBTYPE OF( Cell );
END_ENTITY;

ENTITY TunnelConstCell
	SUBTYPE OF( Cell );
END_ENTITY;

ENTITY ObstacleRmCell
	SUBTYPE OF( Cell );
END_ENTITY;

ENTITY ExcavatingCell
	SUBTYPE OF( Cell );
END_ENTITY;

ENTITY DrainageCell
	SUBTYPE OF( Cell );
END_ENTITY;

ENTITY PavingCell
	SUBTYPE OF( Cell );
END_ENTITY;

ENTITY SupplworksCell
	SUBTYPE OF( Cell );
END_ENTITY;

----------------------------------------------------------------------------
-- Site Schedule Model 
----------------------------------------------------------------------------