/**
  * Additional factory method that creates a new instance from
  * the passed schedule expression.
  *
  * @param \AppserverIo\Psr\EnterpriseBeans\ScheduleExpression $scheduleExpression The schedule expression with the data to create the instance with
  *
  * @return \AppserverIo\Appserver\PersistenceContainer\CalendarBasedTimeout The instance
  */
 public static function factoryFromScheduleExpression(ScheduleExpression $scheduleExpression)
 {
     // prepare the CRON expression
     $cronExpression = sprintf('%s %s %s %s %s %s %s', $scheduleExpression->getSecond(), $scheduleExpression->getMinute(), $scheduleExpression->getHour(), $scheduleExpression->getDayOfMonth(), $scheduleExpression->getMonth(), $scheduleExpression->getDayOfWeek(), $scheduleExpression->getYear());
     // return the point in time at which the next timer expiration is scheduled to occur
     return new CalendarBasedTimeout($cronExpression, $scheduleExpression, new FieldFactory());
 }