ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
ilContainerSortingSettings Class Reference
+ Collaboration diagram for ilContainerSortingSettings:

Public Member Functions

 __construct ($a_obj_id=0)
 Constructor. More...
 
 loadEffectiveSettings ()
 Load inherited settings. More...
 
 getInheritedSettings ($a_container_obj_id)
 Read inherited settings of course/group @global ilTree $tree. More...
 
 getSortMode ()
 get sort mode More...
 
 getSortDirection ()
 Get sort direction. More...
 
 getSortNewItemsPosition ()
 GET new item position. More...
 
 getSortNewItemsOrder ()
 GET new item order. More...
 
 setSortMode ($a_mode)
 set sort mode More...
 
 setSortDirection ($a_direction)
 Set sort direction. More...
 
 setSortNewItemsPosition ($a_position)
 SET new item position. More...
 
 setSortNewItemsOrder ($a_order)
 SET new item order. More...
 
 update ()
 Update. More...
 
 save ()
 save settings More...
 
 delete ()
 Delete setting. More...
 

Static Public Member Functions

static getInstanceByObjId ($a_obj_id)
 Get singleton instance. More...
 
static _readSortMode ($a_obj_id)
 
static _lookupSortMode ($a_obj_id)
 lookup sort mode More...
 
static lookupSortModeFromParentContainer ($a_obj_id)
 Lookup sort mode from parent container. More...
 
static _cloneSettings ($a_old_id, $a_new_id)
 Clone settings. More...
 
static sortModeToString ($a_sort_mode)
 get String representation of sort mode More...
 
static _exportContainerSortingSettings (ilXmlWriter $xml, $obj_id)
 sorting XML-export for all container objects More...
 
static _importContainerSortingSettings ($attibs, $obj_id)
 sorting import for all container objects More...
 

Protected Member Functions

 read ()
 read settings More...
 

Protected Attributes

 $tree
 
 $obj_id
 
 $sort_mode = ilContainer::SORT_TITLE
 
 $sort_direction = ilContainer::SORT_DIRECTION_ASC
 
 $new_items_position = ilContainer::SORT_NEW_ITEMS_POSITION_BOTTOM
 
 $new_items_order = ilContainer::SORT_NEW_ITEMS_ORDER_TITLE
 
 $db
 

Static Private Attributes

static $instances = array()
 

Detailed Description

Definition at line 35 of file class.ilContainerSortingSettings.php.

Constructor & Destructor Documentation

◆ __construct()

ilContainerSortingSettings::__construct (   $a_obj_id = 0)

Constructor.

@access public

Parameters

Definition at line 59 of file class.ilContainerSortingSettings.php.

60 {
61 global $DIC;
62
63 $this->tree = $DIC->repositoryTree();
64 $ilDB = $DIC->database();
65
66 $this->obj_id = $a_obj_id;
67 $this->db = $ilDB;
68
69 $this->read();
70 }
global $DIC
Definition: saml.php:7
global $ilDB

References $DIC, $ilDB, and read().

+ Here is the call graph for this function:

Member Function Documentation

◆ _cloneSettings()

static ilContainerSortingSettings::_cloneSettings (   $a_old_id,
  $a_new_id 
)
static

Clone settings.

@access public

Parameters
intorig obj_id @þaram int new obj_id

Definition at line 212 of file class.ilContainerSortingSettings.php.

213 {
214 global $DIC;
215
216 $ilDB = $DIC->database();
217
218 $query = "SELECT sort_mode,sort_direction,new_items_position,new_items_order " .
219 "FROM container_sorting_set " .
220 "WHERE obj_id = " . $ilDB->quote($a_old_id, 'integer') . " ";
221 $res = $ilDB->query($query);
222 while ($row = $ilDB->fetchAssoc($res)) {
223 $query = "DELETE FROM container_sorting_set " .
224 "WHERE obj_id = " . $ilDB->quote($a_new_id) . " ";
225 $ilDB->manipulate($query);
226
227 $query = "INSERT INTO container_sorting_set " .
228 "(obj_id,sort_mode, sort_direction, new_items_position, new_items_order) " .
229 "VALUES( " .
230 $ilDB->quote($a_new_id, 'integer') . ", " .
231 $ilDB->quote($row["sort_mode"], 'integer') . ", " .
232 $ilDB->quote($row["sort_direction"], 'integer') . ', ' .
233 $ilDB->quote($row["new_items_position"], 'integer') . ', ' .
234 $ilDB->quote($row["new_items_order"], 'integer') . ' ' .
235 ")";
236 $ilDB->manipulate($query);
237 }
238 return true;
239 }
$query
foreach($_POST as $key=> $value) $res

References $DIC, $ilDB, $query, $res, and $row.

◆ _exportContainerSortingSettings()

static ilContainerSortingSettings::_exportContainerSortingSettings ( ilXmlWriter  $xml,
  $obj_id 
)
static

sorting XML-export for all container objects

Parameters
ilXmlWriter$xml
$obj_id

Definition at line 429 of file class.ilContainerSortingSettings.php.

430 {
432
433 $attr = array();
434 switch ($settings->getSortMode()) {
436 switch ($settings->getSortNewItemsOrder()) {
438 $order = 'Activation';
439 break;
441 $order = 'Creation';
442 break;
444 $order = 'Title';
445 break;
446 }
447
448 $attr = array(
449 'direction' => $settings->getSortDirection() == ilContainer::SORT_DIRECTION_ASC ? "ASC" : "DESC",
450 'position' => $settings->getSortNewItemsPosition() == ilContainer::SORT_NEW_ITEMS_POSITION_BOTTOM ? "Bottom" : "Top",
451 'order' => $order,
452 'type' => 'Manual'
453 );
454
455 break;
456
458 $attr = array(
459 'direction' => $settings->getSortDirection() == ilContainer::SORT_DIRECTION_ASC ? "ASC" : "DESC",
460 'type' => 'Creation'
461 );
462 break;
463
465 $attr = array(
466 'direction' => $settings->getSortDirection() == ilContainer::SORT_DIRECTION_ASC ? "ASC" : "DESC",
467 'type' => 'Title'
468 );
469 break;
471 $attr = array(
472 'direction' => $settings->getSortDirection() == ilContainer::SORT_DIRECTION_ASC ? "ASC" : "DESC",
473 'type' => 'Activation'
474 );
475 break;
477 $attr = array(
478 'type' => 'Inherit'
479 );
480 }
481 $xml->xmlElement('Sort', $attr);
482 }
static getInstanceByObjId($a_obj_id)
Get singleton instance.
const SORT_NEW_ITEMS_ORDER_ACTIVATION
const SORT_NEW_ITEMS_ORDER_TITLE
const SORT_NEW_ITEMS_ORDER_CREATION
const SORT_NEW_ITEMS_POSITION_BOTTOM
$xml
Definition: metadata.php:240

References $obj_id, $xml, getInstanceByObjId(), ilContainer\SORT_ACTIVATION, ilContainer\SORT_CREATION, ilContainer\SORT_DIRECTION_ASC, ilContainer\SORT_INHERIT, ilContainer\SORT_MANUAL, ilContainer\SORT_NEW_ITEMS_ORDER_ACTIVATION, ilContainer\SORT_NEW_ITEMS_ORDER_CREATION, ilContainer\SORT_NEW_ITEMS_ORDER_TITLE, ilContainer\SORT_NEW_ITEMS_POSITION_BOTTOM, and ilContainer\SORT_TITLE.

Referenced by ilCategoryXmlWriter\export(), ilCourseXMLWriter\start(), ilGroupXMLWriter\start(), and ilFolderXmlWriter\write().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _importContainerSortingSettings()

static ilContainerSortingSettings::_importContainerSortingSettings (   $attibs,
  $obj_id 
)
static

sorting import for all container objects

Parameters
$attibsarray (type, direction, position, order)
$obj_id

Definition at line 490 of file class.ilContainerSortingSettings.php.

491 {
493
494 switch ($attibs['type']) {
495 case 'Manual':
496 $settings->setSortMode(ilContainer::SORT_MANUAL);
497 break;
498 case 'Creation':
499 $settings->setSortMode(ilContainer::SORT_CREATION);
500 break;
501 case 'Title':
502 $settings->setSortMode(ilContainer::SORT_TITLE);
503 break;
504 case 'Activation':
505 $settings->setSortMode(ilContainer::SORT_ACTIVATION);
506 break;
507 }
508
509 switch ($attibs['direction']) {
510 case 'ASC':
511 $settings->setSortDirection(ilContainer::SORT_DIRECTION_ASC);
512 break;
513 case 'DESC':
514 $settings->setSortDirection(ilContainer::SORT_DIRECTION_DESC);
515 break;
516 }
517
518 switch ($attibs['position']) {
519 case "Top":
520 $settings->setSortNewItemsPosition(ilContainer::SORT_NEW_ITEMS_POSITION_TOP);
521 break;
522 case "Bottom":
523 $settings->setSortNewItemsPosition(ilContainer::SORT_NEW_ITEMS_POSITION_BOTTOM);
524 break;
525 }
526
527 switch ($attibs['order']) {
528 case 'Creation':
529 $settings->setSortNewItemsOrder(ilContainer::SORT_NEW_ITEMS_ORDER_CREATION);
530 break;
531 case 'Title':
532 $settings->setSortNewItemsOrder(ilContainer::SORT_NEW_ITEMS_ORDER_TITLE);
533 break;
534 case 'Activation':
535 $settings->setSortNewItemsOrder(ilContainer::SORT_NEW_ITEMS_ORDER_ACTIVATION);
536 }
537
538 $settings->update();
539 }
const SORT_NEW_ITEMS_POSITION_TOP

References $obj_id, getInstanceByObjId(), ilContainer\SORT_ACTIVATION, ilContainer\SORT_CREATION, ilContainer\SORT_DIRECTION_ASC, ilContainer\SORT_DIRECTION_DESC, ilContainer\SORT_MANUAL, ilContainer\SORT_NEW_ITEMS_ORDER_ACTIVATION, ilContainer\SORT_NEW_ITEMS_ORDER_CREATION, ilContainer\SORT_NEW_ITEMS_ORDER_TITLE, ilContainer\SORT_NEW_ITEMS_POSITION_BOTTOM, ilContainer\SORT_NEW_ITEMS_POSITION_TOP, and ilContainer\SORT_TITLE.

Referenced by ilGroupXMLParser\__initContainerSorting(), ilCategoryXmlParser\handlerBeginTag(), ilCourseXMLParser\handlerBeginTag(), and ilFolderXmlParser\handlerBeginTag().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _lookupSortMode()

static ilContainerSortingSettings::_lookupSortMode (   $a_obj_id)
static

lookup sort mode

@access public

Parameters
intobj_id

Definition at line 170 of file class.ilContainerSortingSettings.php.

171 {
172 global $DIC;
173
174 $tree = $DIC->repositoryTree();
175 $ilDB = $DIC->database();
176 $objDefinition = $DIC["objDefinition"];
177
178 // Try to read from table
179 $query = "SELECT * FROM container_sorting_set " .
180 "WHERE obj_id = " . $ilDB->quote($a_obj_id, 'integer') . " ";
181 $res = $ilDB->query($query);
182
183 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
184 if ($row->sort_mode != ilContainer::SORT_INHERIT) {
185 return $row->sort_mode;
186 }
187 }
189 }
static lookupSortModeFromParentContainer($a_obj_id)
Lookup sort mode from parent container.

References $DIC, $ilDB, $query, $res, $row, $tree, ilDBConstants\FETCHMODE_OBJECT, lookupSortModeFromParentContainer(), and ilContainer\SORT_INHERIT.

Referenced by ilObjLinkResourceGUI\activateTabs(), ilContainerGUI\addStandardRow(), ilObjLinkResourceGUI\initFormSettings(), ilWebResourceLinkTableGUI\initSorting(), ilContainerGUI\isActiveItemOrdering(), ilObjCourse\read(), ilObjFolder\read(), ilObjGroup\read(), ilContainer\read(), ilLinkResourceItems\sortItems(), ilObjLinkResource\toXML(), and ilObjLinkResourceGUI\view().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _readSortMode()

static ilContainerSortingSettings::_readSortMode (   $a_obj_id)
static

Definition at line 145 of file class.ilContainerSortingSettings.php.

146 {
147 global $DIC;
148
149 $ilDB = $DIC->database();
150
151 $query = "SELECT * FROM container_sorting_set " .
152 "WHERE obj_id = " . $ilDB->quote($a_obj_id, 'integer') . " ";
153 $res = $ilDB->query($query);
154
155 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
156 return $row->sort_mode;
157 }
159 }

References $DIC, $ilDB, $query, $res, $row, ilDBConstants\FETCHMODE_OBJECT, and ilContainer\SORT_INHERIT.

◆ delete()

ilContainerSortingSettings::delete ( )

Delete setting.

Returns

Definition at line 361 of file class.ilContainerSortingSettings.php.

362 {
364
365 $query = 'DELETE FROM container_sorting_set WHERE obj_id = ' . $ilDB->quote($this->obj_id, 'integer');
366 $ilDB->query($query);
367 }

References $db, $ilDB, and $query.

◆ getInheritedSettings()

ilContainerSortingSettings::getInheritedSettings (   $a_container_obj_id)

Read inherited settings of course/group @global ilTree $tree.

Parameters
int$a_container_obj_id

Definition at line 114 of file class.ilContainerSortingSettings.php.

115 {
117
118 if (!$a_container_obj_id) {
119 $a_container_obj_id = $this->obj_id;
120 }
121
122 $ref_ids = ilObject::_getAllReferences($a_container_obj_id);
123 $ref_id = current($ref_ids);
124
125 if ($cont_ref_id = $tree->checkForParentType($ref_id, 'grp', true)) {
126 $parent_obj_id = ilObject::_lookupObjId($cont_ref_id);
127 $parent_settings = self::getInstanceByObjId($parent_obj_id);
128
129 if ($parent_settings->getSortMode() == ilContainer::SORT_INHERIT) {
130 return $this->getInheritedSettings($parent_obj_id);
131 }
132 return $parent_settings;
133 }
134
135 if ($cont_ref_id = $tree->checkForParentType($ref_id, 'crs', true)) {
136 $parent_obj_id = ilObject::_lookupObjId($cont_ref_id);
137 $parent_settings = self::getInstanceByObjId($parent_obj_id);
138 return $parent_settings;
139 }
140 // no parent settings found => return current settings
141 return $this;
142 }
getInheritedSettings($a_container_obj_id)
Read inherited settings of course/group @global ilTree $tree.
static _lookupObjId($a_id)
static _getAllReferences($a_id)
get all reference ids of object

References $obj_id, $tree, ilObject\_getAllReferences(), ilObject\_lookupObjId(), getInheritedSettings(), getInstanceByObjId(), and ilContainer\SORT_INHERIT.

Referenced by getInheritedSettings(), and loadEffectiveSettings().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getInstanceByObjId()

static ilContainerSortingSettings::getInstanceByObjId (   $a_obj_id)
static

Get singleton instance.

Parameters
type$a_obj_id
Returns
ilContainerSortingSettings

Definition at line 77 of file class.ilContainerSortingSettings.php.

78 {
79 if (self::$instances[$a_obj_id]) {
80 return self::$instances[$a_obj_id];
81 }
82 return self::$instances[$a_obj_id] = new self($a_obj_id);
83 }

Referenced by _exportContainerSortingSettings(), _importContainerSortingSettings(), getInheritedSettings(), ilCourseXMLParser\handlerBeginTag(), lookupSortModeFromParentContainer(), and ilContainerSorting\read().

+ Here is the caller graph for this function:

◆ getSortDirection()

ilContainerSortingSettings::getSortDirection ( )

Get sort direction.

Returns
type

Definition at line 256 of file class.ilContainerSortingSettings.php.

257 {
258 return $this->sort_direction ? $this->sort_direction : ilContainer::SORT_DIRECTION_ASC;
259 }

References ilContainer\SORT_DIRECTION_ASC.

Referenced by ilContainerGUI\initSortingDirectionForm().

+ Here is the caller graph for this function:

◆ getSortMode()

ilContainerSortingSettings::getSortMode ( )

get sort mode

@access public

Definition at line 247 of file class.ilContainerSortingSettings.php.

248 {
249 return $this->sort_mode ? $this->sort_mode : 0;
250 }

Referenced by loadEffectiveSettings().

+ Here is the caller graph for this function:

◆ getSortNewItemsOrder()

ilContainerSortingSettings::getSortNewItemsOrder ( )

GET new item order.

Returns
int position

Definition at line 274 of file class.ilContainerSortingSettings.php.

References $new_items_order.

◆ getSortNewItemsPosition()

ilContainerSortingSettings::getSortNewItemsPosition ( )

GET new item position.

Returns
int position

Definition at line 265 of file class.ilContainerSortingSettings.php.

References $new_items_position.

◆ loadEffectiveSettings()

ilContainerSortingSettings::loadEffectiveSettings ( )

Load inherited settings.

Returns
ilContainerSortingSettings

Definition at line 89 of file class.ilContainerSortingSettings.php.

90 {
91 if ($this->getSortMode() != ilContainer::SORT_INHERIT) {
92 return $this;
93 }
94
95 $effective_settings = $this->getInheritedSettings($this->obj_id);
96 $inherited = clone $this;
97
98 if ($effective_settings->getSortMode() == ilContainer::SORT_INHERIT) {
99 $inherited->setSortMode(ilContainer::SORT_TITLE);
100 } else {
101 $inherited->setSortMode($effective_settings->getSortMode());
102 $inherited->setSortNewItemsOrder($effective_settings->getSortNewItemsOrder());
103 $inherited->setSortNewItemsPosition($effective_settings->getSortNewItemsPosition());
104 }
105 return $inherited;
106 }

References getInheritedSettings(), getSortMode(), ilContainer\SORT_INHERIT, and ilContainer\SORT_TITLE.

+ Here is the call graph for this function:

◆ lookupSortModeFromParentContainer()

static ilContainerSortingSettings::lookupSortModeFromParentContainer (   $a_obj_id)
static

Lookup sort mode from parent container.

Parameters
object$a_obj_id
Returns

Definition at line 196 of file class.ilContainerSortingSettings.php.

197 {
198 $settings = self::getInstanceByObjId($a_obj_id);
199 $inherited_settings = $settings->getInheritedSettings($a_obj_id);
200 return $inherited_settings->getSortMode();
201 }

References getInstanceByObjId().

Referenced by _lookupSortMode(), and ilContainerGUI\initSortingForm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ read()

ilContainerSortingSettings::read ( )
protected

read settings

@access private

Parameters

Definition at line 376 of file class.ilContainerSortingSettings.php.

377 {
378 if (!$this->obj_id) {
379 return true;
380 }
381
382 $query = "SELECT * FROM container_sorting_set " .
383 "WHERE obj_id = " . $this->db->quote($this->obj_id, 'integer') . " ";
384
385 $res = $this->db->query($query);
386 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
387 $this->sort_mode = $row->sort_mode;
388 $this->sort_direction = $row->sort_direction;
389 $this->new_items_position = $row->new_items_position;
390 $this->new_items_order = $row->new_items_order;
391 return true;
392 }
393 }

References $query, $res, $row, and ilDBConstants\FETCHMODE_OBJECT.

Referenced by __construct().

+ Here is the caller graph for this function:

◆ save()

ilContainerSortingSettings::save ( )

save settings

@access public

Definition at line 341 of file class.ilContainerSortingSettings.php.

342 {
344
345 $query = "INSERT INTO container_sorting_set " .
346 "(obj_id,sort_mode, sort_direction, new_items_position, new_items_order) " .
347 "VALUES ( " .
348 $this->db->quote($this->obj_id, 'integer') . ", " .
349 $this->db->quote($this->sort_mode, 'integer') . ", " .
350 $this->db->quote($this->sort_direction, 'integer') . ', ' .
351 $this->db->quote($this->new_items_position, 'integer') . ', ' .
352 $this->db->quote($this->new_items_order, 'integer') . ' ' .
353 ")";
354 $res = $ilDB->manipulate($query);
355 }

References $db, $ilDB, $query, and $res.

Referenced by update().

+ Here is the caller graph for this function:

◆ setSortDirection()

ilContainerSortingSettings::setSortDirection (   $a_direction)

Set sort direction.

Parameters
type$a_direction

Definition at line 295 of file class.ilContainerSortingSettings.php.

296 {
297 $this->sort_direction = (int) $a_direction;
298 }

◆ setSortMode()

ilContainerSortingSettings::setSortMode (   $a_mode)

set sort mode

@access public

Parameters
intMODE_TITLE | MODE_MANUAL | MODE_ACTIVATION

Definition at line 286 of file class.ilContainerSortingSettings.php.

287 {
288 $this->sort_mode = (int) $a_mode;
289 }

◆ setSortNewItemsOrder()

ilContainerSortingSettings::setSortNewItemsOrder (   $a_order)

SET new item order.

Parameters
int$a_order

Definition at line 313 of file class.ilContainerSortingSettings.php.

314 {
315 $this->new_items_order = (int) $a_order;
316 }

◆ setSortNewItemsPosition()

ilContainerSortingSettings::setSortNewItemsPosition (   $a_position)

SET new item position.

Parameters
int$a_position

Definition at line 304 of file class.ilContainerSortingSettings.php.

305 {
306 $this->new_items_position = (int) $a_position;
307 }

◆ sortModeToString()

static ilContainerSortingSettings::sortModeToString (   $a_sort_mode)
static

get String representation of sort mode

Parameters
int$a_sort_mode
Returns

Definition at line 400 of file class.ilContainerSortingSettings.php.

401 {
402 global $DIC;
403
404 $lng = $DIC->language();
405
406 $lng->loadLanguageModule('crs');
407 switch ($a_sort_mode) {
409 return $lng->txt('crs_sort_activation');
410
412 return $lng->txt('crs_sort_manual');
413
415 return $lng->txt('crs_sort_title');
416
418 return $lng->txt('sorting_creation_header');
419 }
420 return '';
421 }
global $lng
Definition: privfeed.php:17

References $DIC, $lng, ilContainer\SORT_ACTIVATION, ilContainer\SORT_CREATION, ilContainer\SORT_MANUAL, and ilContainer\SORT_TITLE.

Referenced by ilContainerGUI\initSortingForm().

+ Here is the caller graph for this function:

◆ update()

ilContainerSortingSettings::update ( )

Update.

@access public

Definition at line 324 of file class.ilContainerSortingSettings.php.

325 {
327
328 $query = "DELETE FROM container_sorting_set " .
329 "WHERE obj_id = " . $ilDB->quote($this->obj_id, 'integer');
330 $res = $ilDB->manipulate($query);
331
332 $this->save();
333 }

References $db, $ilDB, $query, $res, and save().

+ Here is the call graph for this function:

Field Documentation

◆ $db

ilContainerSortingSettings::$db
protected

Definition at line 50 of file class.ilContainerSortingSettings.php.

Referenced by delete(), save(), and update().

◆ $instances

ilContainerSortingSettings::$instances = array()
staticprivate

Definition at line 42 of file class.ilContainerSortingSettings.php.

◆ $new_items_order

ilContainerSortingSettings::$new_items_order = ilContainer::SORT_NEW_ITEMS_ORDER_TITLE
protected

Definition at line 48 of file class.ilContainerSortingSettings.php.

Referenced by getSortNewItemsOrder().

◆ $new_items_position

ilContainerSortingSettings::$new_items_position = ilContainer::SORT_NEW_ITEMS_POSITION_BOTTOM
protected

Definition at line 47 of file class.ilContainerSortingSettings.php.

Referenced by getSortNewItemsPosition().

◆ $obj_id

ilContainerSortingSettings::$obj_id
protected

◆ $sort_direction

ilContainerSortingSettings::$sort_direction = ilContainer::SORT_DIRECTION_ASC
protected

Definition at line 46 of file class.ilContainerSortingSettings.php.

◆ $sort_mode

ilContainerSortingSettings::$sort_mode = ilContainer::SORT_TITLE
protected

Definition at line 45 of file class.ilContainerSortingSettings.php.

◆ $tree

ilContainerSortingSettings::$tree
protected

Definition at line 40 of file class.ilContainerSortingSettings.php.

Referenced by _lookupSortMode(), and getInheritedSettings().


The documentation for this class was generated from the following file: