stella.xml
Class PatternMerit

java.lang.Object
  extended by util.PropertyContainer
      extended by util.PropertyResources
          extended by util.PropertyBundles
              extended by stella.AbstractMerit
                  extended by stella.xml.PatternMerit
All Implemented Interfaces:
Serializable, Cloneable, EndpointDefining, Meriting, Initializable, LocalizedSupplying, PropertySupplying, ResourceSupplying

public class PatternMerit
extends AbstractMerit
implements EndpointDefining

This class can be used to implement a single observational pattern. The first (successful) observation is arbitrarely timed, returning KEY_BEFOREMERIT as a merit. After that, the KEY_HIGHMERIT is returned, if the observation of the first successful observation has occured 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 thr first successful observation, t_n is one of the follow-up days, and prior/post is the dayly span belonging to t_n, specified in #KEY_PRIOR and #KEY_POST keys.

See Also:
Serialized Form

Nested Class Summary
private static class PatternMerit.Phase
           
 
Nested classes/interfaces inherited from class util.PropertyResources
PropertyResources.URLResource
 
Field Summary
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.
 
Fields inherited from class util.PropertyBundles
KEY_LOCALECOUNTRY, KEY_LOCALELANGUAGE, KEY_RESOURCEBUNDLES
 
Fields inherited from class util.PropertyResources
KEY_NOINITONCREATE, localurl, locate, POSTFIX_DIR, POSTFIX_EXT, POSTFIX_FILE, POSTFIX_LIST, POSTFIX_URL, urlset
 
Fields inherited from class util.PropertyContainer
KEY_LISTSEPARATOR, KEY_MAPKEYVALUECHAR, KEY_MAPSEPARATOR
 
Fields inherited from interface util.ResourceSupplying
KEY_URLRESOURCES, KEY_URLUSECONFIG, KEY_URLUSECURRENT, KEY_URLUSEHOME
 
Fields inherited from interface util.PropertySupplying
CONFIG, KEY_CLASS
 
Constructor Summary
PatternMerit(Map prop)
          Constructs a pattern merit.
 
Method Summary
 double getMerit(ParameterClustering set, TargetDefinition target, Collection ignore, long dummy)
          Calculates the actual time slot merit.
private  PatternMerit.Phase getPhase(ParameterClustering set, TargetDefinition target)
           
 boolean isCompleted(ParameterClustering set, TargetDefinition target)
          Returns true, if the observing program on the target is finished.
private  void parseAllLists()
           
private  List<Double> parseList(String key)
           
 
Methods inherited from class stella.AbstractMerit
createMerit, getInitializer, initMerit
 
Methods inherited from class util.PropertyBundles
clone, getLocalized, getLocalized, getLocalizedString, getLocalizedString, loadResource
 
Methods inherited from class util.PropertyResources
createFrom, createFrom, createFrom, getApplet, getAsResources, getLocalClassLoader, getPropertiesToKey, getPropertiesToKey, getResource, getResourceAsStream, getResourceFromKey, getResources, init, keyCreate, keyCreate, reload, setApplet
 
Methods inherited from class util.PropertyContainer
augment, augment, augment, 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, isNew, parseObject, reload, removeProperty, rescanned, setObject, setProperties, setProperty, stringProperties, toString
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface stella.Meriting
getInitializer, initMerit
 
Methods inherited from interface util.ResourceSupplying
getResource, getResourceAsStream, getResources
 
Methods inherited from interface util.PropertySupplying
defaultBoolean, defaultChar, defaultDouble, defaultFloat, defaultInt, defaultLong, defaultObject, defaultObject, defaultProperties, defaultProperty, getAsBoolean, getAsChar, getAsDouble, getAsFloat, getAsInt, getAsList, getAsLong, getAsMap, getAsObject, getAsObject, getProperties, getProperty, has, parseObject, removeProperty, setObject, setProperty, stringProperties
 
Methods inherited from interface util.Initializable
init
 

Field Detail

KEY_FOLLOWUPDAYS

public static final String KEY_FOLLOWUPDAYS
The days on which a follow up should occur.

See Also:
Constant Field Values

KEY_PRIORDAYS

public static final String KEY_PRIORDAYS
The prio days on which a follow up should occur.

See Also:
Constant Field Values

KEY_POSTDAYS

public static final String KEY_POSTDAYS
The post days on which a follow up should occur.

See Also:
Constant Field Values

KEY_BEFOREMERIT

public static final String KEY_BEFOREMERIT
The merit before the first pick.

See Also:
Constant Field Values

KEY_HIGHMERIT

public static final String KEY_HIGHMERIT
The merit after the first pick.

See Also:
Constant Field Values

KEY_TIME

public static final String KEY_TIME
The key pointing to the name of the time parameter.

See Also:
Constant Field Values

DEFBEFOREMERIT

private static final double DEFBEFOREMERIT
Default scaling factor, i.e. merit in 'prior' phase.

See Also:
Constant Field Values

DEFHIGHMERIT

private static final double DEFHIGHMERIT
Default scaling factor, i.e. merit in 'on' phase.

See Also:
Constant Field Values

DEFTIME

private static final String DEFTIME
Default time parameter name.

See Also:
Constant Field Values

followup

private List<Double> followup
The list of timeouts.


prior

private List<Double> prior
The list of prior timeouts.


post

private List<Double> post
The list of post timeouts.

Constructor Detail

PatternMerit

public PatternMerit(Map prop)
Constructs a pattern merit. It defaults the #KEY_TIMEOUT parameter. Proper creation should be done using the AbstractMerit.createMerit(java.util.Map) method. This create method also takes care of proper parameter overloading.

Method Detail

parseAllLists

private void parseAllLists()

parseList

private List<Double> parseList(String key)

getMerit

public double getMerit(ParameterClustering set,
                       TargetDefinition target,
                       Collection ignore,
                       long dummy)
Calculates the actual time slot merit. Depending on last successful observations, the merit is either zero or #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.

Specified by:
getMerit in interface Meriting
Parameters:
set - Current observing conditions.
target - The actual target.
ignore - The list of targetes relevant to the actual target.
dummy - The relevant time span in ms.

isCompleted

public boolean isCompleted(ParameterClustering set,
                           TargetDefinition target)
Description copied from interface: EndpointDefining
Returns true, if the observing program on the target is finished. An observing program is finished either if the aimed-at number of successful observations has been done, or if the target will never be observable again.

Specified by:
isCompleted in interface EndpointDefining

getPhase

private PatternMerit.Phase getPhase(ParameterClustering set,
                                    TargetDefinition target)