public class PatternMerit extends AbstractMerit implements EndpointDefining
KEY_BEFOREMERIT as a merit. After that, the KEY_HIGHMERIT
is
returned, if the observation of the first successful observation has
occurred around one of the days cited in #KEY_FOLLOWUP, otherwise
zero is returned. Around
means that
prior_n+t_n < t-t_0 < post_n+t_n,where t is the current time, t_0 the time of the first successful observation, t_n is one of the follow-up days, and prior/post is the daily span belonging to t_n, specified in
#KEY_PRIOR and #KEY_POST
keys.| Modifier and Type | Class and Description |
|---|---|
private static class |
PatternMerit.Phase |
| Modifier and Type | Field and Description |
|---|---|
private static double |
DEFBEFOREMERIT
Default scaling factor, i.e.
|
private static double |
DEFHIGHMERIT
Default scaling factor, i.e.
|
private static String |
DEFTIME
Default time parameter name.
|
private List<Double> |
followup
The list of timeouts.
|
static String |
KEY_BEFOREMERIT
The merit before the first pick.
|
static String |
KEY_FOLLOWUPDAYS
The days on which a follow up should occur.
|
static String |
KEY_HIGHMERIT
The merit after the first pick.
|
static String |
KEY_POSTDAYS
The post days on which a follow up should occur.
|
static String |
KEY_PRIORDAYS
The prio days on which a follow up should occur.
|
static String |
KEY_TIME
The key pointing to the name of the time parameter.
|
private List<Double> |
post
The list of post timeouts.
|
private List<Double> |
prior
The list of prior timeouts.
|
private static long |
serialVersionUID |
KEY_LISTSEPARATOR, KEY_MAPKEYVALUECHAR, KEY_MAPSEPARATORCONFIG, KEY_CLASS| Constructor and Description |
|---|
PatternMerit(Map<String,String> prop)
Constructs a pattern merit.
|
| Modifier and Type | Method and Description |
|---|---|
double |
getMerit(GlobalGrouping set,
Appointable target,
Collection<Appointable> ignore,
long dummy)
Calculates the actual time slot merit.
|
private PatternMerit.Phase |
getPhase(GlobalGrouping set,
Appointable target) |
boolean |
isCompleted(GlobalGrouping set,
Appointable target)
Returns true, if the observing program on the target is finished.
|
private void |
parseAllLists() |
private List<Double> |
parseList(String key) |
createMerit, getInitializer, initMeritaugment, augment, augment, augment, augment, clone, defaultBoolean, defaultChar, defaultDouble, defaultFloat, defaultInt, defaultLong, defaultObject, defaultObject, defaultProperties, defaultProperty, getAsBoolean, getAsChar, getAsDouble, getAsEnums, getAsFloat, getAsInt, getAsList, getAsLong, getAsMap, getAsMap, getAsObject, getAsObject, getProperties, getProperty, has, initProperties, isNew, parseObject, parseObject, reload, reload, removeProperty, requires, rescanned, setObject, setProperties, setProperty, stringProperties, toStringprivate static final long serialVersionUID
public static final String KEY_FOLLOWUPDAYS
public static final String KEY_PRIORDAYS
public static final String KEY_POSTDAYS
public static final String KEY_BEFOREMERIT
public static final String KEY_HIGHMERIT
public static final String KEY_TIME
private static final double DEFBEFOREMERIT
private static final double DEFHIGHMERIT
private static final String DEFTIME
public PatternMerit(Map<String,String> prop)
#KEY_TIMEOUT
parameter. Proper creation should be
done using the AbstractMerit.createMerit(java.util.Map<java.lang.String, java.lang.String>) method.
This create method also takes care of proper parameter
overloading.private void parseAllLists()
public double getMerit(GlobalGrouping set, Appointable target, Collection<Appointable> ignore, long dummy)
#KEY_SCALE.
The modulo of the current number of succesful observations with the
length of the #timeout list defines the currently active
time-out. If the time elapsed since the last succesful observation has
been made exceeds this time-out, zero is returned, otherwise,
#KEY_SCALE. After #KEY_PATTERN repetitions of the
pattern, zero is returned. The time-span is ignored.public boolean isCompleted(GlobalGrouping set, Appointable target)
EndpointDefiningisCompleted in interface EndpointDefiningprivate PatternMerit.Phase getPhase(GlobalGrouping set, Appointable target)