stella.parameter
Class NightRemain

java.lang.Object
  extended by util.PropertyContainer
      extended by util.PropertyResources
          extended by util.PropertyBundles
              extended by stella.parameter.AbstractParameter
                  extended by stella.parameter.AbstractValue
                      extended by stella.parameter.NightRemain
All Implemented Interfaces:
Cloneable, Parameter, ParameterDepending, Value, ExitCleaning, Initializable, LocalizedSupplying, PropertySupplying, Reloadable, ResourceSupplying

public class NightRemain
extends AbstractValue
implements ParameterDepending, Reloadable

A class giving the remaining length of the actual night in milliseconds. During day, we return the time it will take until next night's dawn.
This parameter needs the solar height. It queries the solar height for the ascend time of the #KEY_TWILIGHT value and returns this as the night remaining time. This time may vary from the time until the solar height toggles bad weather, as bad weather sparks closing of the roof. At that time, no astronomical observations should be possible any more, thus the night time should drop to zero erlier. If the solar height returns an ascend time of NaN, meaning that at the current solar position we have no sunrise, we return the length of an entire day.
Note that the (slow) change in solar position is neglected by this value.


Nested Class Summary
static class NightRemain.Test
          Test class.
 
Nested classes/interfaces inherited from class util.PropertyResources
PropertyResources.URLResource
 
Field Summary
static String DEFNAME
          The default name of this value.
private static double DEFRISESETWILIGHT
          The default opening/closing solar height.
private static double DEFSETTWILIGHT
          The default opening/closing solar height.
private static String DEFSOLHEIGHT
          The default name of the sidereal parameter to use.
static String KEY_RISETWILIGHT
          The target hight at which the roof opens/closes.
static String KEY_SETTWILIGHT
          The target hight at which the roof opens/closes.
static String KEY_SOLHEIGHT
          The name of the solar height value.
private  SolHeight solz
          The solar height.
 
Fields inherited from class stella.parameter.AbstractParameter
KEY_FORMAT, KEY_NAME, KEY_PRESERVE, UNKNOWN
 
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.PropertySupplying
CONFIG, KEY_CLASS
 
Fields inherited from interface util.ResourceSupplying
KEY_URLRESOURCES, KEY_URLUSECONFIG, KEY_URLUSECURRENT, KEY_URLUSEHOME
 
Constructor Summary
NightRemain(Map prop)
          Constructs a new nigth length object.
 
Method Summary
 String getFormatted()
          Gets a formatted value of the night-time remaining.
 Number getValue()
          Returns the time it will remain night in ms.
 void registerParameter(Parameter what)
          Registers the required additional information for the night length calculation.
 double rescanned(String key, String old, String newval)
          As any parameter depending instance we fail if the parameter we depend on is now a different one.
 Number setValue(Number val)
          Sets the night length.
 
Methods inherited from class stella.parameter.AbstractValue
get, set
 
Methods inherited from class stella.parameter.AbstractParameter
createParameter, delivers, exit, getFormatted, getName, getPreserveFile, getString, getString, init, register, setName, toString
 
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, 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, setObject, setProperties, setProperty, stringProperties
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface util.Reloadable
reload
 
Methods inherited from interface stella.Parameter
getName, getString
 
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
 
Methods inherited from interface util.ResourceSupplying
getResource, getResourceAsStream, getResources
 

Field Detail

KEY_SOLHEIGHT

public static final String KEY_SOLHEIGHT
The name of the solar height value.

See Also:
Constant Field Values

KEY_RISETWILIGHT

public static final String KEY_RISETWILIGHT
The target hight at which the roof opens/closes.

See Also:
Constant Field Values

KEY_SETTWILIGHT

public static final String KEY_SETTWILIGHT
The target hight at which the roof opens/closes.

See Also:
Constant Field Values

DEFNAME

public static final String DEFNAME
The default name of this value.

See Also:
Constant Field Values

DEFSOLHEIGHT

private static final String DEFSOLHEIGHT
The default name of the sidereal parameter to use.

See Also:
Constant Field Values

DEFRISESETWILIGHT

private static final double DEFRISESETWILIGHT
The default opening/closing solar height.

See Also:
Constant Field Values

DEFSETTWILIGHT

private static final double DEFSETTWILIGHT
The default opening/closing solar height.

See Also:
Constant Field Values

solz

private SolHeight solz
The solar height.

Constructor Detail

NightRemain

public NightRemain(Map prop)
Constructs a new nigth length object. Defaults #KEY_TWILIGHT.

Method Detail

rescanned

public double rescanned(String key,
                        String old,
                        String newval)
As any parameter depending instance we fail if the parameter we depend on is now a different one.

Specified by:
rescanned in interface Reloadable
Overrides:
rescanned in class AbstractParameter

registerParameter

public void registerParameter(Parameter what)
Registers the required additional information for the night length calculation. This includes the solar ecliptical longitude and the latitude of the site.

Specified by:
registerParameter in interface ParameterDepending

setValue

public Number setValue(Number val)
                throws UnsupportedOperationException
Sets the night length. The night length is a read-only variable, therefore this method throws an UnsupportedOperationException.

Specified by:
setValue in interface Value
Throws:
UnsupportedOperationException

getValue

public Number getValue()
Returns the time it will remain night in ms. If the sun is above the twilight zone, zero is returned.

Specified by:
getValue in interface Value

getFormatted

public String getFormatted()
Gets a formatted value of the night-time remaining. It is displayed as an hour-minute-second string.

Specified by:
getFormatted in interface Parameter
Overrides:
getFormatted in class AbstractParameter