private double calculateWeight(JobInProgress job, TaskType taskType) {
   if (!isRunnable(job)) {
     return 0;
   } else {
     double weight = 1.0;
     if (sizeBasedWeight) {
       // Set weight based on runnable tasks
       weight = Math.log1p(runnableTasks(job, taskType)) / Math.log(2);
     }
     weight *= getPriorityFactor(job.getPriority());
     if (weightAdjuster != null) {
       // Run weight through the user-supplied weightAdjuster
       weight = weightAdjuster.adjustWeight(job, taskType, weight);
     }
     return weight;
   }
 }
 @Override
 public JobPriority getPriority() {
   return job.getPriority();
 }