public function apply() { $formElementDefinition = new InsertFormElementDefinition(); $property = false; if ($this->hasList(3)) { $property = true; $formElementDefinition->setWorkspaces($this->getList(2)); $formElementDefinition->setLanguages($this->getList(3)); } elseif ($this->hasList(2)) { $formElementDefinition->setWorkspaces($this->getList(1)); $formElementDefinition->setLanguages($this->getList(2)); } elseif ($this->hasList(1)) { $property = true; } if ($property) { if (!$this->hasParam(1)) { throw new CMDLParserException('Missing mandatory parameter property for annotation @insert.', CMDLParserException::CMDL_MISSING_MANDATORY_PARAM); } $formElementDefinition->setPropertyName($this->getParam(1)); $formElementDefinition->setInsertConditions($this->getList(1)); } else { if (!$this->hasParam(1)) { throw new CMDLParserException('Missing mandatory parameter clipping name for annotation @insert.', CMDLParserException::CMDL_MISSING_MANDATORY_PARAM); } $formElementDefinition->setClippingName($this->getParam(1)); } $this->currentFormElementDefinitionCollection->addFormElementDefinition($formElementDefinition); return $this->dataTypeDefinition; }