private IWorkPackageQueue getQueueForEnqueuing(
      final Properties ctx, final I_C_Queue_PackageProcessor packageProcessor) {
    final String internalNameToUse;
    if (Check.isEmpty(packageProcessor.getInternalName())) {
      internalNameToUse = packageProcessor.getClassname();
    } else {
      internalNameToUse = packageProcessor.getInternalName();
    }

    return WorkPackageQueue.createForEnqueuing(
        ctx, packageProcessor.getC_Queue_PackageProcessor_ID(), internalNameToUse);
  }
  @Override
  public IWorkPackageQueue getQueueForPackageProcessing(final I_C_Queue_Processor processor) {
    final List<I_C_Queue_PackageProcessor> packageProcessors =
        Services.get(IQueueDAO.class).retrieveWorkpackageProcessors(processor);
    final List<Integer> packageProcessorIds = new ArrayList<Integer>(packageProcessors.size());
    for (final I_C_Queue_PackageProcessor packageProcessor : packageProcessors) {
      packageProcessorIds.add(packageProcessor.getC_Queue_PackageProcessor_ID());
    }

    final Properties ctx = InterfaceWrapperHelper.getCtx(processor);
    final String priorityFrom = processor.getPriority();

    return WorkPackageQueue.createForQueueProcessing(ctx, packageProcessorIds, priorityFrom);
  }