ILIAS  release_8 Revision v8.24
ilSkillTemplateReferenceGUI Class Reference

Skill template reference GUI class. More...

+ Inheritance diagram for ilSkillTemplateReferenceGUI:
+ Collaboration diagram for ilSkillTemplateReferenceGUI:

Public Member Functions

 __construct (Tree\SkillTreeNodeManager $node_manager, int $a_tref_id=0)
 
 getType ()
 
 executeCommand ()
 
 setTabs ($a_tab="levels")
 
 insert ()
 
 editProperties ()
 
 initForm (string $a_mode="edit")
 
 getValues ()
 
 saveItem ()
 
 afterSave ()
 
 updateSkillTemplateReference ()
 
 listItems ()
 
 showObjects ()
 
 redirectToParent (bool $a_tmp_mode=false)
 Redirect to parent (identified by current node_id) More...
 
- Public Member Functions inherited from ilBasicSkillTemplateGUI
 __construct (Tree\SkillTreeNodeManager $node_manager, int $a_node_id=0, int $a_tref_id=0)
 
 getType ()
 
 initForm (string $a_mode="edit")
 
 setLevelHead ()
 
 setTabs (string $a_tab="levels")
 
 saveItem ()
 
 afterSave ()
 
 edit ()
 
 showUsage ()
 
 showObjects ()
 
 redirectToParent (bool $a_tmp_mode=false)
 Redirect to parent (identified by current node_id) More...
 
- Public Member Functions inherited from ilBasicSkillGUI
 __construct (Tree\SkillTreeNodeManager $node_manager, int $a_node_id=0)
 
 getType ()
 
 executeCommand ()
 
 showProperties ()
 
 saveItem ()
 
 afterSave ()
 
 updateItem ()
 
 edit ()
 
 initForm (string $a_mode="edit")
 
 editProperties ()
 
 addLevel ()
 
 editLevel ()
 
 saveLevel ()
 
 updateLevel ()
 
 initLevelForm (string $a_mode="edit")
 
 updateLevelOrder ()
 
 confirmLevelDeletion ()
 
 deleteLevel ()
 
 setLevelHead ()
 
 setTabs (string $a_tab="levels")
 
 redirectToParent (bool $a_tmp_mode=false)
 Redirect to parent (identified by current node_id) More...
 
 showLevelResources ()
 
 addLevelResource ()
 
 saveLevelResource ()
 
 confirmLevelResourcesRemoval ()
 
 removeLevelResources ()
 
 saveResourceSettings ()
 
- Public Member Functions inherited from ilSkillTreeNodeGUI
 __construct (Tree\SkillTreeNodeManager $node_manager, int $a_node_id=0)
 
 isInUse ()
 
 setParentGUI (object $a_parentgui)
 
 getParentGUI ()
 
 readNodeObject (int $a_node_id)
 Get node object instance. More...
 
 saveAllTitles ()
 
 deleteNodes ()
 Delete nodes in the hierarchy. More...
 
 cutItems ()
 Copy items to clipboard, then cut them from the current tree. More...
 
 copyItems ()
 Copy items to clipboard. More...
 
 cancelDelete ()
 
 confirmedDelete ()
 confirmed delete More...
 
 setSkillNodeDescription ()
 
 create ()
 Create skill tree node. More...
 
 addStatusInput (ilPropertyFormGUI $a_form)
 
 editProperties ()
 
 getPropertyValues ()
 Get property values for edit form. More...
 
 save ()
 Save skill tree node. More...
 
 afterSave ()
 
 update ()
 Update skill tree node. More...
 
 afterUpdate ()
 
 initForm (string $a_mode="edit")
 
 cancelSave ()
 
 redirectToParent (bool $a_tmp_mode=false)
 Redirect to parent (identified by current node_id) More...
 
 saveOrder ()
 
 insertBasicSkillClip ()
 
 insertSkillCategoryClip ()
 
 insertTemplateReferenceClip ()
 
 insertSkillTemplateClip ()
 
 insertTemplateCategoryClip ()
 
 setTitleIcon ()
 
 addUsageTab (ilTabsGUI $a_tabs)
 
 showUsage ()
 
 addObjectsTab (ilTabsGUI $a_tabs)
 
 showObjects ()
 
 exportSelectedNodes ()
 

Additional Inherited Members

- Data Fields inherited from ilSkillTreeNodeGUI
object $node_object = null
 
bool $in_use = false
 
bool $use_checked = false
 
ilAccessHandler $access
 
- Protected Attributes inherited from ilBasicSkillTemplateGUI
ilCtrl $ctrl
 
ilLanguage $lng
 
ilTabsGUI $tabs
 
ilGlobalTemplateInterface $tpl
 
ilHelpGUI $help
 
ilToolbarGUI $toolbar
 
- Protected Attributes inherited from ilBasicSkillGUI
ilCtrl $ctrl
 
ilGlobalTemplateInterface $tpl
 
ilTabsGUI $tabs
 
ilHelpGUI $help
 
ilToolbarGUI $toolbar
 
ilLanguage $lng
 
Factory $ui_fac
 
Renderer $ui_ren
 
ServerRequestInterface $request
 
int $tref_id = 0
 
int $requested_level_id = 0
 
int $requested_root_id = 0
 
array $requested_level_order = []
 
array $requested_level_ids = []
 
array $requested_resource_ids = []
 
array $requested_suggested = []
 
array $requested_trigger = []
 
- Protected Attributes inherited from ilSkillTreeNodeGUI
ilCtrl $ctrl
 
ilLanguage $lng
 
ilLocatorGUI $locator
 
ilGlobalTemplateInterface $tpl
 
ilObjUser $user
 
ilTree $tree
 
ilPropertyFormGUI $form
 
object $parentgui
 
int $tref_id = 0
 
Tree SkillTreeNodeManager $skill_tree_node_manager
 
SkillTreeAccess $tree_access_manager
 
ilSkillTreeRepository $tree_repo
 
int $skill_tree_id = 0
 
ilTabsGUI $tabs
 
SkillAdminGUIRequest $admin_gui_request
 
int $requested_ref_id = 0
 
int $requested_node_id = 0
 
string $requested_backcmd = ""
 
int $requested_tmpmode = 0
 
int $base_skill_id = 0
 
array $requested_node_ids = []
 
array $requested_node_order = []
 

Detailed Description

Skill template reference GUI class.

Author
Alex Killing alex..nosp@m.kill.nosp@m.ing@g.nosp@m.mx.d.nosp@m.e

@ilCtrl_isCalledBy ilSkillTemplateReferenceGUI: ilObjSkillManagementGUI, ilObjSkillTreeGUI

Definition at line 29 of file class.ilSkillTemplateReferenceGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilSkillTemplateReferenceGUI::__construct ( Tree\SkillTreeNodeManager  $node_manager,
int  $a_tref_id = 0 
)

Reimplemented from ilBasicSkillGUI.

Definition at line 31 of file class.ilSkillTemplateReferenceGUI.php.

32 {
33 global $DIC;
34
35 $this->ctrl = $DIC->ctrl();
36 $this->tpl = $DIC["tpl"];
37 $this->tabs = $DIC->tabs();
38 $this->lng = $DIC->language();
39 $this->help = $DIC["ilHelp"];
40 $ilCtrl = $DIC->ctrl();
41
42 $ilCtrl->saveParameter($this, "node_id");
43 $ilCtrl->saveParameter($this, "tref_id");
44
45 parent::__construct($node_manager, $a_tref_id);
46
47 $this->tref_id = $a_tref_id;
48 if (is_object($this->node_object)) {
49 $this->base_skill_id = $this->node_object->getSkillTemplateId();
50 }
51 }
global $DIC
Definition: feed.php:28
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc

References $DIC, ILIAS\GlobalScreen\Provider\__construct(), ILIAS\Repository\ctrl(), ILIAS\Repository\help(), ILIAS\Repository\lng(), and ILIAS\Repository\tabs().

+ Here is the call graph for this function:

Member Function Documentation

◆ afterSave()

ilSkillTemplateReferenceGUI::afterSave ( )

Reimplemented from ilBasicSkillTemplateGUI.

Definition at line 272 of file class.ilSkillTemplateReferenceGUI.php.

272 : void
273 {
274 $ilCtrl = $this->ctrl;
275
276 if (!$this->tree_access_manager->hasManageCompetencesPermission()) {
277 return;
278 }
279
280 $ilCtrl->setParameterByClass(
281 "ilskilltemplatereferencegui",
282 "tref_id",
283 $this->node_object->getId()
284 );
285 $ilCtrl->setParameterByClass(
286 "ilskilltemplatereferencegui",
287 "node_id",
288 $this->node_object->getSkillTemplateId()
289 );
290 $ilCtrl->redirectByClass("ilskilltemplatereferencegui", "listItems");
291 }
setParameterByClass(string $a_class, string $a_parameter, $a_value)
@inheritDoc

References ilBasicSkillTemplateGUI\$ctrl, and ilCtrl\setParameterByClass().

+ Here is the call graph for this function:

◆ editProperties()

ilSkillTemplateReferenceGUI::editProperties ( )

Reimplemented from ilBasicSkillGUI.

Definition at line 161 of file class.ilSkillTemplateReferenceGUI.php.

161 : void
162 {
164
165 $this->setTabs("properties");
166
167 $this->initForm();
168 $this->getValues();
169 $tpl->setContent($this->form->getHTML());
170 }
setContent(string $a_html)
Sets content for standard template.
form( $class_path, string $cmd)

References ilBasicSkillTemplateGUI\$tpl, ILIAS\Repository\form(), getValues(), initForm(), ilGlobalTemplateInterface\setContent(), and setTabs().

+ Here is the call graph for this function:

◆ executeCommand()

ilSkillTemplateReferenceGUI::executeCommand ( )

Reimplemented from ilBasicSkillGUI.

Definition at line 58 of file class.ilSkillTemplateReferenceGUI.php.

58 : void
59 {
60 $ilCtrl = $this->ctrl;
62 $ilTabs = $this->tabs;
63
64 //$tpl->getStandardTemplate();
65
66 $next_class = $ilCtrl->getNextClass($this);
67 $cmd = $ilCtrl->getCmd();
68
69 switch ($next_class) {
70 default:
71 $ret = $this->$cmd();
72 break;
73 }
74 }

References ilBasicSkillTemplateGUI\$ctrl, ilBasicSkillTemplateGUI\$tabs, and ilBasicSkillTemplateGUI\$tpl.

◆ getType()

ilSkillTemplateReferenceGUI::getType ( )

Reimplemented from ilBasicSkillTemplateGUI.

Definition at line 53 of file class.ilSkillTemplateReferenceGUI.php.

53 : string
54 {
55 return "sktr";
56 }

◆ getValues()

ilSkillTemplateReferenceGUI::getValues ( )

Definition at line 244 of file class.ilSkillTemplateReferenceGUI.php.

244 : void
245 {
246 $values = [];
247 $values["skill_template_id"] = $this->node_object->getSkillTemplateId();
248 $values["title"] = $this->node_object->getTitle();
249 $values["description"] = $this->node_object->getDescription();
250 $values["selectable"] = $this->node_object->getSelfEvaluation();
251 $values["status"] = $this->node_object->getStatus();
252 $this->form->setValuesByArray($values);
253 }

References ILIAS\Repository\form().

Referenced by editProperties().

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

◆ initForm()

ilSkillTemplateReferenceGUI::initForm ( string  $a_mode = "edit")

Reimplemented from ilBasicSkillTemplateGUI.

Definition at line 172 of file class.ilSkillTemplateReferenceGUI.php.

172 : void
173 {
175 $ilCtrl = $this->ctrl;
176
177 //TODO: Refactoring to UI Form when non-editable input is available
178
179 $this->form = new ilPropertyFormGUI();
180
181 // select skill template
182 $tmplts = $this->skill_tree_node_manager->getTopTemplates();
183
184 // title
185 $ti = new ilTextInputGUI($lng->txt("title"), "title");
186 $ti->setRequired(true);
187 $this->form->addItem($ti);
188
189 // description
190 if ($a_mode == "edit") {
191 $desc = ilSkillTreeNode::_lookupDescription($this->node_object->getSkillTemplateId());
192 if (!empty($desc)) {
193 $ne = new ilNonEditableValueGUI($lng->txt("description"), "template_description");
194 $ne->setValue($desc);
195 $ne->setInfo($lng->txt("skmg_description_info"));
196 $this->form->addItem($ne);
197 }
198 }
199
200 // template
201 $options = array(
202 "" => $lng->txt("please_select"),
203 );
204 foreach ($tmplts as $tmplt) {
205 $options[$tmplt["child"]] = $tmplt["title"];
206 }
207 if ($a_mode != "edit") {
208 $si = new ilSelectInputGUI($lng->txt("skmg_skill_template"), "skill_template_id");
209 $si->setOptions($options);
210 $si->setRequired(true);
211 $this->form->addItem($si);
212 } else {
213 $ne = new ilNonEditableValueGUI($lng->txt("skmg_skill_template"), "");
214 $ne->setValue($options[$this->node_object->getSkillTemplateId()] ?? "");
215 $this->form->addItem($ne);
216 }
217
218 // status
219 $this->addStatusInput($this->form);
220
221 // selectable
222 $cb = new ilCheckboxInputGUI($lng->txt("skmg_selectable"), "selectable");
223 $cb->setInfo($lng->txt("skmg_selectable_info"));
224 $this->form->addItem($cb);
225
226 if ($this->tree_access_manager->hasManageCompetencesPermission()) {
227 if ($a_mode == "create") {
228 $this->form->addCommandButton("save", $lng->txt("save"));
229 $this->form->addCommandButton("cancelSave", $lng->txt("cancel"));
230 $this->form->setTitle($lng->txt("skmg_new_sktr"));
231 } else {
232 $this->form->addCommandButton("updateSkillTemplateReference", $lng->txt("save"));
233 $this->form->setTitle($lng->txt("skmg_edit_sktr"));
234 }
235 } else {
236 foreach ($this->form->getItems() as $item) {
237 $item->setDisabled(true);
238 }
239 }
240
241 $this->form->setFormAction($ilCtrl->getFormAction($this));
242 }
This class represents a checkbox property in a property form.
txt(string $a_topic, string $a_default_lang_fallback_mod="")
gets the text for a given topic if the topic is not in the list, the topic itself with "-" will be re...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This class represents a property form user interface.
This class represents a selection list property in a property form.
addStatusInput(ilPropertyFormGUI $a_form)
static _lookupDescription(int $a_obj_id)
This class represents a text property in a property form.

References ilBasicSkillTemplateGUI\$ctrl, ilBasicSkillTemplateGUI\$lng, ilSkillTreeNode\_lookupDescription(), ilSkillTreeNodeGUI\addStatusInput(), ILIAS\Repository\form(), and ilLanguage\txt().

Referenced by editProperties(), insert(), and updateSkillTemplateReference().

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

◆ insert()

ilSkillTemplateReferenceGUI::insert ( )

Definition at line 150 of file class.ilSkillTemplateReferenceGUI.php.

150 : void
151 {
152 $ilCtrl = $this->ctrl;
154
155 $ilCtrl->saveParameter($this, "parent_id");
156 $ilCtrl->saveParameter($this, "target");
157 $this->initForm("create");
158 $tpl->setContent($this->form->getHTML());
159 }

References ilBasicSkillTemplateGUI\$ctrl, ilBasicSkillTemplateGUI\$tpl, ILIAS\Repository\form(), initForm(), and ilGlobalTemplateInterface\setContent().

+ Here is the call graph for this function:

◆ listItems()

ilSkillTemplateReferenceGUI::listItems ( )

Definition at line 320 of file class.ilSkillTemplateReferenceGUI.php.

320 : void
321 {
324
325 if ($this->isInUse()) {
326 $this->tpl->setOnScreenMessage('info', $lng->txt("skmg_skill_in_use"));
327 }
328
329 $this->setTabs("content");
330
331 $sk_id = $this->node_object->getSkillTemplateId();
332 $obj_type = ilSkillTreeNode::_lookupType($sk_id);
333
334 if ($obj_type == "sctp") {
335 $table = new ilSkillCatTableGUI(
336 $this,
337 "listItems",
338 (int) $sk_id,
340 $this->node_object->getId()
341 );
342 $tpl->setContent($table->getHTML());
343 } elseif ($obj_type == "sktp") {
344 $table = new ilSkillLevelTableGUI(
345 (int) $sk_id,
346 $this,
347 "edit",
348 $this->node_object->getId(),
349 false,
350 $this->tree_access_manager->hasManageCompetencesPermission()
351 );
352 $tpl->setContent($table->getHTML());
353 }
354 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static _lookupType(int $a_obj_id)

References ilBasicSkillTemplateGUI\$lng, ilBasicSkillTemplateGUI\$tpl, ilSkillTreeNode\_lookupType(), ilSkillTreeNodeGUI\isInUse(), ilSkillCatTableGUI\MODE_SCTP, ilGlobalTemplateInterface\setContent(), setTabs(), and ilLanguage\txt().

+ Here is the call graph for this function:

◆ redirectToParent()

ilSkillTemplateReferenceGUI::redirectToParent ( bool  $a_tmp_mode = false)

Redirect to parent (identified by current node_id)

Reimplemented from ilBasicSkillTemplateGUI.

Definition at line 370 of file class.ilSkillTemplateReferenceGUI.php.

370 : void
371 {
372 $ilCtrl = $this->ctrl;
373
374 $ilCtrl->setParameterByClass("ilskillrootgui", "node_id", $this->requested_node_id);
375 $ilCtrl->redirectByClass("ilskillrootgui", "listSkills");
376 }

References ilBasicSkillTemplateGUI\$ctrl, and ilCtrl\setParameterByClass().

+ Here is the call graph for this function:

◆ saveItem()

ilSkillTemplateReferenceGUI::saveItem ( )

Reimplemented from ilBasicSkillTemplateGUI.

Definition at line 255 of file class.ilSkillTemplateReferenceGUI.php.

255 : void
256 {
257 if (!$this->tree_access_manager->hasManageCompetencesPermission()) {
258 return;
259 }
260
261 $sktr = new ilSkillTemplateReference();
262 $sktr->setTitle($this->form->getInput("title"));
263 $sktr->setDescription($this->form->getInput("description"));
264 $sktr->setSkillTemplateId($this->form->getInput("skill_template_id"));
265 $sktr->setSelfEvaluation((bool) $this->form->getInput("selectable"));
266 $sktr->setStatus($this->form->getInput("status"));
267 $sktr->create();
268 $this->skill_tree_node_manager->putIntoTree($sktr, $this->requested_node_id, ilTree::POS_LAST_NODE);
269 $this->node_object = $sktr;
270 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
const POS_LAST_NODE

References ILIAS\Repository\form(), and ilTree\POS_LAST_NODE.

+ Here is the call graph for this function:

◆ setTabs()

ilSkillTemplateReferenceGUI::setTabs (   $a_tab = "levels")

Definition at line 76 of file class.ilSkillTemplateReferenceGUI.php.

76 : void
77 {
78 $ilTabs = $this->tabs;
79 $ilCtrl = $this->ctrl;
82 $ilHelp = $this->help;
83
84 $ilTabs->clearTargets();
85 $ilHelp->setScreenIdComponent("skmg_sktr");
86
87 if (is_object($this->node_object)) {
88 $sk_id = $this->node_object->getSkillTemplateId();
89 $obj_type = ilSkillTreeNode::_lookupType($sk_id);
90
91 if ($obj_type == "sctp") {
92 // content
93 $ilTabs->addTab(
94 "content",
95 $lng->txt("content"),
96 $ilCtrl->getLinkTarget($this, 'listItems')
97 );
98 } else {
99 // content
100 $ilTabs->addTab(
101 "content",
102 $lng->txt("skmg_skill_levels"),
103 $ilCtrl->getLinkTarget($this, 'listItems')
104 );
105 }
106
107 // properties
108 $ilTabs->addTab(
109 "properties",
110 $lng->txt("settings"),
111 $ilCtrl->getLinkTarget($this, 'editProperties')
112 );
113
114 // usage
115 $this->addUsageTab($ilTabs);
116
117 // assigned objects
118 if ($obj_type != "sctp") {
119 $this->addObjectsTab($ilTabs);
120 }
121
122 $ilCtrl->setParameterByClass(
123 "ilskillrootgui",
124 "node_id",
125 $this->skill_tree_node_manager->getRootId()
126 );
127 $ilTabs->setBackTarget(
128 $lng->txt("skmg_skills"),
129 $ilCtrl->getLinkTargetByClass("ilskillrootgui", "listSkills")
130 );
131 $ilCtrl->setParameterByClass(
132 "ilskillrootgui",
133 "node_id",
134 $this->requested_node_id
135 );
136
137 $tid = ilSkillTemplateReference::_lookupTemplateId($this->node_object->getId());
138 $add = " (" . ilSkillTreeNode::_lookupTitle($tid) . ")";
139
140 parent::setTitleIcon();
141 $tpl->setTitle(
142 $lng->txt("skmg_sktr") . ": " . $this->node_object->getTitle() . $add
143 );
145
146 $ilTabs->activateTab($a_tab);
147 }
148 }
setScreenIdComponent(string $a_comp)
addUsageTab(ilTabsGUI $a_tabs)
addObjectsTab(ilTabsGUI $a_tabs)
static _lookupTitle(int $a_obj_id, int $a_tref_id=0)
setTitle(string $a_title, bool $hidden=false)
Sets title in standard template.

References ilBasicSkillTemplateGUI\$ctrl, ilBasicSkillTemplateGUI\$help, ilBasicSkillTemplateGUI\$lng, ilBasicSkillTemplateGUI\$tabs, ilBasicSkillTemplateGUI\$tpl, ilSkillTemplateReference\_lookupTemplateId(), ilSkillTreeNode\_lookupTitle(), ilSkillTreeNode\_lookupType(), ilSkillTreeNodeGUI\addObjectsTab(), ilSkillTreeNodeGUI\addUsageTab(), ilHelpGUI\setScreenIdComponent(), ilSkillTreeNodeGUI\setSkillNodeDescription(), ilGlobalTemplateInterface\setTitle(), and ilLanguage\txt().

Referenced by editProperties(), listItems(), and showObjects().

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

◆ showObjects()

ilSkillTemplateReferenceGUI::showObjects ( )

Reimplemented from ilBasicSkillTemplateGUI.

Definition at line 356 of file class.ilSkillTemplateReferenceGUI.php.

356 : void
357 {
359
360 $this->setTabs("objects");
361
362 $usage_info = new ilSkillUsage();
363 $objects = $usage_info->getAssignedObjectsForSkill($this->base_skill_id, $this->tref_id);
364
365 $tab = new ilSkillAssignedObjectsTableGUI($this, "showObjects", $objects);
366
367 $tpl->setContent($tab->getHTML());
368 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

References ilBasicSkillTemplateGUI\$tpl, ilGlobalTemplateInterface\setContent(), and setTabs().

+ Here is the call graph for this function:

◆ updateSkillTemplateReference()

ilSkillTemplateReferenceGUI::updateSkillTemplateReference ( )

Definition at line 293 of file class.ilSkillTemplateReferenceGUI.php.

293 : void
294 {
296 $ilCtrl = $this->ctrl;
298
299 if (!$this->tree_access_manager->hasManageCompetencesPermission()) {
300 return;
301 }
302
303 $this->initForm("edit");
304 if ($this->form->checkInput()) {
305 // perform update
306 $this->node_object->setTitle($this->form->getInput("title"));
307 $this->node_object->setDescription($this->form->getInput("description"));
308 $this->node_object->setSelfEvaluation((bool) $this->form->getInput("selectable"));
309 $this->node_object->setStatus($this->form->getInput("status"));
310 $this->node_object->update();
311
312 $this->tpl->setOnScreenMessage('success', $lng->txt("msg_obj_modified"), true);
313 $ilCtrl->redirect($this, "editProperties");
314 }
315
316 $this->form->setValuesByPost();
317 $tpl->setContent($this->form->getHTML());
318 }

References ilBasicSkillTemplateGUI\$ctrl, ilBasicSkillTemplateGUI\$lng, ilBasicSkillTemplateGUI\$tpl, ILIAS\Repository\form(), initForm(), ilGlobalTemplateInterface\setContent(), and ilLanguage\txt().

+ Here is the call graph for this function:

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