code: protected PlanVersionBean createPlanVersionInternal(NewPlanVersionBean bean, PlanBean plan)
              throws StorageException {
          if (!BeanUtils.isValidVersion(bean.getVersion())) {
              throw new StorageException("Invalid/illegal plan version: " + bean.getVersion()); //$NON-NLS-1$
          }
  
          PlanVersionBean newVersion = new PlanVersionBean();
          newVersion.setCreatedBy(securityContext.getCurrentUser());
          newVersion.setCreatedOn(new Date());
          newVersion.setModifiedBy(securityContext.getCurrentUser());
          newVersion.setModifiedOn(new Date());
          newVersion.setStatus(PlanStatus.Created);
          newVersion.setPlan(plan);
          newVersion.setVersion(bean.getVersion());
          storage.createPlanVersion(newVersion);
          storage.createAuditEntry(AuditUtils.planVersionCreated(newVersion, securityContext));
          return newVersion;
      }
docs: Creates a plan version.
  @param bean
  @param plan
  @throws StorageException