Welcome to mirror list, hosted at ThFree Co, Russian Federation.

IPriorityMechanism.java « scheduling « core « omtc « capitati « com « java « main « src - github.com/ianj-als/omtc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: d38d1b89753000248107d67987060846aacd9b33 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/*
 * Copyright Capita Translation and Interpreting 2013
 *
 * This file is part of OMTC.
 *
 * OMTC is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * OMTC is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with OMTC.  If not, see <http://www.gnu.org/licenses/>.
 */
package com.capitati.omtc.core.scheduling;

/**
 * Implementers should define the priority policy for their product. A priority
 * description is used to provide the parameters that shall be used to generate
 * a priority object. The description may include SLA, due date, user's price
 * plan, one-off task payment details that would improve a task's priority etc.
 *
 * @author ianjohnson
 *
 * @param <V> the type of the priority value.
 * @param <D> the type of the priority description. This is a type that provides
 * all the parameters that will be combined to create a priority object.
 */
public interface IPriorityMechanism<V, D> {
  /**
   * Taking a priority description generate a priority object that is the
   * combination of the description.
   * 
   * @param priorityDescription - the parameters to use to generate the priority.
   * @return A priority object.
   * @throws Exception
   */
  IPriority<V> getPriority(D priorityDescription) throws Exception;
}