/**
  * Initializes a bean descriptor instance from the passed configuration node.
  *
  * @param \AppserverIo\Description\Configuration\ConfigurationInterface $configuration The configuration node with the bean configuration
  *
  * @return \AppserverIo\Psr\EnterpriseBeans\Description\SingletonSessionBeanDescriptorInterface|null The initialized descriptor instance
  */
 public function fromConfiguration(ConfigurationInterface $configuration)
 {
     // query whether or not we've a session bean configuration
     if (!$configuration instanceof SessionConfigurationInterface) {
         return;
     }
     // query wheter or not the session type matches
     if ((string) $configuration->getSessionType() !== SingletonSessionBeanDescriptor::SESSION_TYPE) {
         return;
     }
     // initialize the descriptor instance
     parent::fromConfiguration($configuration);
     // initialize the post detach callback methods
     if ($postDetach = $configuration->getPostDetach()) {
         foreach ($postDetach->getLifecycleCallbackMethods() as $postDetachCallback) {
             $this->addPostDetachCallback(DescriptorUtil::trim((string) $postDetachCallback));
         }
     }
     // initialize the pre attach callback methods
     if ($preAttach = $configuration->getPreAttach()) {
         foreach ($preAttach->getLifecycleCallbackMethods() as $preAttachCallback) {
             $this->addPreAttachCallback(DescriptorUtil::trim((string) $preAttachCallback));
         }
     }
     // query for the startup flag
     if ($initOnStartup = (string) $configuration->getInitOnStartup()) {
         $this->setInitOnStartup(Boolean::valueOf(new String($initOnStartup))->booleanValue());
     }
     // return the instance
     return $this;
 }
 /**
  * Initializes a bean descriptor instance from the passed configuration node.
  *
  * @param \AppserverIo\Description\Configuration\ConfigurationInterface $configuration The configuration node with the bean configuration
  *
  * @return \AppserverIo\Psr\EnterpriseBeans\Description\StatelessSessionBeanDescriptorInterface|null The initialized descriptor instance
  */
 public function fromConfiguration(ConfigurationInterface $configuration)
 {
     // query whether or not we've a session bean configuration
     if (!$configuration instanceof SessionConfigurationInterface) {
         return;
     }
     // query wheter or not the session type matches
     if ((string) $configuration->getSessionType() !== StatelessSessionBeanDescriptor::SESSION_TYPE) {
         return;
     }
     // initialize the descriptor instance
     parent::fromConfiguration($configuration);
     // return the instance
     return $this;
 }
 /**
  * Initializes a bean descriptor instance from the passed configuration node.
  *
  * @param \AppserverIo\Description\Configuration\ConfigurationInterface $configuration The configuration node with the bean configuration
  *
  * @return \AppserverIo\Psr\EnterpriseBeans\Description\StatefulSessionBeanDescriptorInterface|null The initialized descriptor instance
  */
 public function fromConfiguration(ConfigurationInterface $configuration)
 {
     // query whether or not we've a session bean configuration
     if (!$configuration instanceof SessionConfigurationInterface) {
         return;
     }
     // query wheter or not the session type matches
     if ((string) $configuration->getSessionType() !== StatefulSessionBeanDescriptor::SESSION_TYPE) {
         return;
     }
     // initialize the descriptor instance
     parent::fromConfiguration($configuration);
     // initialize the post detach callback methods
     if ($postDetach = $configuration->getPostDetach()) {
         foreach ($postDetach->getLifecycleCallbackMethods() as $postDetachCallback) {
             $this->addPostDetachCallback(DescriptorUtil::trim((string) $postDetachCallback));
         }
     }
     // initialize the pre attach callback methods
     if ($preAttach = $configuration->getPreAttach()) {
         foreach ($preAttach->getLifecycleCallbackMethods() as $preAttachCallback) {
             $this->addPreAttachCallback(DescriptorUtil::trim((string) $preAttachCallback));
         }
     }
     // initialize the post activate callback methods
     if ($postActivate = $configuration->getPostActivate()) {
         foreach ($postActivate->getLifecycleCallbackMethods() as $postActivateCallback) {
             $this->addPostActivateCallback(DescriptorUtil::trim((string) $postActivateCallback));
         }
     }
     // initialize the pre passivate callback methods
     if ($prePassivate = $configuration->getPrePassivate()) {
         foreach ($prePassivate->getLifecycleCallbackMethods() as $prePassivateCallback) {
             $this->addPrePassivateCallback(DescriptorUtil::trim((string) $prePassivateCallback));
         }
     }
     // initialize the remove methods
     if ($removeMethod = $configuration->getRemoveMethod()) {
         foreach ($removeMethod->getMethodNames() as $methodName) {
             $this->addRemoveMethod(DescriptorUtil::trim((string) $methodName));
         }
     }
     // return the instance
     return $this;
 }