Package hec.rss.model
Class Rule
java.lang.Object
java.util.Observable
hec.lang.NamedType
hec.rss.model.RssTSLocationObject
hec.rss.model.Rule
- All Implemented Interfaces:
AsciiSerializable,FieldAccessor,TSLocation,RssModelVariableConstants,RssReturnStatusConstants,RssTSLocation,Serializable,Cloneable,Comparable,Observer,rma.lang.Modifiable
- Direct Known Subclasses:
ConstantRelease,DiversionRule,FlowFunction,MinMax,MonthlyRelease,PoolElevation,ResGuideCurve,SpecifiedRelease,TimeSeries
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected DayOfWeekMultiplierprotected OpControllerprotected Stringprotected TimeOfDayMultiplierprotected booleanprotected booleanprotected booleanFields inherited from class hec.lang.NamedType
_description, _ignoreModifiedEvents, _index, _isValid, _modified, _name, defaultDescription, defaultName, DESCRIPTION_CHANGED, NAME_CHANGED, RENAME_EVENTFields inherited from interface hec.rss.model.RssModelVariableConstants
CUMLOC_OUTPUT_DATA, GRPID_DIVERSION, GRPID_JUNCTION, GRPID_REACH, GRPID_RESERVOIR, HINDCAST_IDS, HOLDOUT_OUTPUT_DATA, INPUT_DATA, OUTPUT_DATA, PULSE_OUTPUT_DATA, UNREG_OUTPUT_DATA, VID_ADJPARAM_FLOW, VID_CAPACITY_FACTOR, VID_CTRLOUT_HINDFLW, VID_CTRLOUT_RELEASE, VID_DAM_LEAK, VID_DAM_RELEASE, VID_DIV_FLOW, VID_DIV_FLOW_ROUTED, VID_DIV_HINDFLW, VID_DIV_RELEASE, VID_DIVOUT_FLOW, VID_DIVOUT_FLOW_ROUTED, VID_ENERGYREQUIRED_TSINPUT, VID_FIRST, VID_FOREBAY_ELEV, VID_FOREBAY_HEADLOSS, VID_GATE_OPENING, VID_GATE_PERCENTOPEN, VID_JUNC_ELEV, VID_JUNC_FLOW_CUMLOC, VID_JUNC_FLOW_DIV, VID_JUNC_FLOW_HOLD, VID_JUNC_FLOW_IN, VID_JUNC_FLOW_LIMIT, VID_JUNC_FLOW_LOCAL, VID_JUNC_FLOW_PULSE, VID_JUNC_FLOW_REG, VID_JUNC_FLOW_UNREG, VID_JUNC_FLOW_VIOL, VID_JUNC_HINDFLOW, VID_JUNC_INFLOW, VID_JUNC_INFLOW_LOCAL_TOTAL, VID_JUNC_STAGE, VID_JUNC_STAGE_LIMIT, VID_JUNC_STAGE_REG, VID_JUNC_STAGE_UNREG, VID_JUNC_STAGE_VIOL, VID_LAST, VID_NODE_FLOW, VID_NODE_HINDFLW, VID_NODE_HINDSTG, VID_NODE_KNOWNFLOW, VID_NODE_STAGE, VID_OPCTRL_CONSTRAINTID, VID_OPCTRL_DECISION, VID_OPCTRL_MAXLIMIT, VID_OPCTRL_MINLIMIT, VID_OPCTRL_RULEID, VID_OPCTRL_ZONEID, VID_OPRULE_FLOW_SPACE, VID_OPRULE_MAX, VID_OPRULE_MAX_STAGE, VID_OPRULE_MIN, VID_OPRULE_MIN_STAGE, VID_OPRULE_PRIORITY, VID_OPRULE_ROUTE_LAG, VID_OPRULE_ROUTE_MAXOFFSET, VID_OPRULE_ROUTE_MINOFFSET, VID_OPRULE_SPEC, VID_OPRULE_STOR_BAL, VID_OPRULE_STOR_BAL_INDEX, VID_OPRULE_VIOL_ELEV, VID_OPRULE_VIOL_FLOW, VID_OPRULE_VIOL_STAGE, VID_OPRULE_VIOL_STOR, VID_OPRULE_WQCD_ELEV, VID_OPRULEFL_CUMLOC, VID_OPRULETS_TSINPUT, VID_OPSET_ACTIVEZONE, VID_OPSET_GC_ELEV, VID_OPSET_GC_STOR, VID_OPSET_KNOWNZONEELEV, VID_OPSET_PROJECTEDELEV, VID_OPSET_ZONEELEV, VID_OPSET_ZONESTOR, VID_OUTGRP_RELEASE, VID_POOL_AREA, VID_POOL_ELEV, VID_POOL_ELEV_EST, VID_POOL_ELEVROC, VID_POOL_EVAP, VID_POOL_FLOWINTOSTOR, VID_POOL_HINDELEV, VID_POOL_HINDSTOR, VID_POOL_HOLDOUT, VID_POOL_INFLOW, VID_POOL_INPUTEVAP, VID_POOL_NETINFLOW, VID_POOL_OUTFLOW, VID_POOL_OUTFLOW_EST, VID_POOL_SEEP, VID_POOL_STOR, VID_PULSE_BACKQ, VID_PULSE_PULSEQ, VID_PUMP_FLOWAVG, VID_PUMP_VOL, VID_PUMPRULE_FLOWAVG, VID_PUMPRULE_FLOWAVG_CAP, VID_PUMPRULE_FLOWINST, VID_PUMPRULE_FLOWINST_CAP, VID_PUMPRULE_HOURS, VID_PUMPRULE_HOURS_CAP, VID_PUMPRULE_NUMPUMP, VID_PUMPRULE_NUMPUMP_CAP, VID_PUMPRULE_UNITHOURS, VID_PUMPRULE_UNITHOURS_CAP, VID_PUMPRULE_VOL, VID_PUMPRULE_VOL_CAP, VID_PWR_CAPABILITY, VID_PWR_EFF, VID_PWR_ENGYGEN, VID_PWR_ENGYPATTERN, VID_PWR_ENGYPERGEN, VID_PWR_ENGYPERREQD, VID_PWR_ENGYREQD, VID_PWR_ENGYVIOL, VID_PWR_FLWPWR, VID_PWR_HDPWR, VID_PWR_HYDLSS, VID_PWR_MAXCAPACITY, VID_PWR_PER_BALGEN, VID_PWR_PER_GCGEN, VID_PWR_PER_MINPUMPGEN, VID_PWR_PER_MINRELGEN, VID_PWR_PER_POWGEN, VID_PWR_PER_PUMPGEN, VID_PWR_PLNTFAC, VID_PWR_PWRCAP, VID_PWR_REQUIRED, VID_PWR_SPILL, VID_PWR_VIOL, VID_RCH_SEEP, VID_REACH_FLOW_CUMLOC, VID_REACH_FLOW_IN, VID_REACH_FLOW_REG, VID_REACH_FLOW_UNREG, VID_RES_GCRELEASE, VID_RES_HOLDOUT, VID_RES_RELEASE, VID_SPILL_FLOW, VID_SPILL_HINDFLOW, VID_STATE_VAR, VID_STATE_VAR_HIND, VID_TAIL_ELEV, VID_UNCTOUT_FLOW, VID_UNCTOUT_HINDFLW, VID_WA_ACCOUNT_DEMAND, VID_WA_ACCOUNT_INFLOW, VID_WA_CHARGES, VID_WA_CREDIT, VID_WA_CURRENT_MAX_VOLUME, VID_WA_CURRENT_VOLUME, VID_WA_HINDSTOR, VID_WA_LOSSES, VID_WA_PUMPBACK, VID_WA_RULE_DEMAND, VID_WA_SURPLUS, VID_WA_TRANSFERS, WQID_OFFSETFields inherited from interface hec.rss.model.RssReturnStatusConstants
RTN_CANCELED, RTN_NOPROBLEM, RTN_OPCHANGE, RTN_PROBLEM -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetActiveTSRecordProxies(Vector vec, int iotype) add the time series record proxies associated with the active operation set to the given vectorDeprecated.doubleGet multiplier factor for the day, accounting for day of the weekdoublegets the demand scale used for firm yield analysisgetFieldObject(Field fld) This method allows access to java.lang.reflect.Field objects within the implementing class.intget the GMT offsetReturns a new Day of Week Multiplier objectvoidgetReferencedStateVariables(List svlist) adds all StateVariables refereced by diversion rule to the given ListReturn the RssSystem of the ConrollerdoubleReturns a Time Of Day Multiplier objectintabstract doublegetValue(AdjustableParameter adjparam, RunTimeStep rts, double val) This method should be overridenbooleanbooleaninitialize TSRecordProxy for RssTSLocationObjectbooleanreadData(BufferedReader input) voidsetController(Controller control) Deprecated.voidsetDemandScale(double scl) sets the demand scale used for firm yield analysisbooleansetFieldObject(Field fld, Object fobj) This allows access to fields withing the implementing object to set there data.voidSets the Day of Week MulitpliervoidsetOpController(OpController controller) voidsetPeriodAverageLimit(boolean tf) protected voidsetRuleType(String ruleType) voidSets the Time of Day MulitpliervoidsetTSLocationData(String type, String name, String param) voidsetUseDayOfWeekMultiplier(boolean tf) Set flag for Day Of Week MultipliervoidsetUseDemandScale(boolean b) set the flag to use demand scale for firm yield analysisvoidsetUsePeriodAverageLimit(boolean tf) Set flag for period average limit usevoidsetUseTimeOfDayMultiplier(boolean tf) Set flag for Time Of Day MultipliertoString()voidupdateByDemandScale(double scl) voidHave top level controller update the TSRecordProxy set for itself and all child controllers and rulesbooleanReturns true if Day Of Week Multiplier to be usedbooleanreturn flag to use demand scale for firm yield analysisbooleanbooleanReturns true if Time Of Day Multiplier to be usedbooleanwriteData(BufferedWriter out) Methods inherited from class hec.rss.model.RssTSLocationObject
addTSRecord, addTSRecordProxy, addTSRecordProxy, addTSRecordProxy, clearTSProxyList, clone, copyInto, getComputedTSRecordProxies, getTSArray, getTSArray, getTSArray, getTSArray, getTSContainer, getTSContainer, getTSDataSet, getTSRecordProxy, getTSRecordProxy, getTSRecordProxy, getTSRecordProxy, getTSRecordProxy, getTSRecordProxyVec, removeTSRecord, removeTSRecordProxy, removeTSRecordProxyMethods inherited from class hec.lang.NamedType
addModifiableListener, compareTo, fireModifiedStateChanged, getDescription, getDisplayName, getIgnoreModifiedEvents, getIndex, getName, isModified, isValid, readResolve, removeModifiableListener, rename, set, setDescription, setIgnoreModifiedEvents, setIndex, setModified, setName, setValid, update, useRecursiveModifiedTestMethods inherited from class java.util.Observable
addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged
-
Field Details
-
_multiplier
-
_timeOfDayMultiplier
-
_useDayOfWeekMultiplier
protected boolean _useDayOfWeekMultiplier -
_useTimeOfDayMultiplier
protected boolean _useTimeOfDayMultiplier -
_usePeriodAverageLimit
protected boolean _usePeriodAverageLimit -
_ruleType
-
_opController
-
-
Constructor Details
-
Rule
public Rule() -
Rule
Deprecated. -
Rule
-
-
Method Details
-
updateByDemandScale
public void updateByDemandScale(double scl) -
setUseDemandScale
public void setUseDemandScale(boolean b) set the flag to use demand scale for firm yield analysis -
useDemandScale
public boolean useDemandScale()return flag to use demand scale for firm yield analysis- Returns:
- flag to use demand scale for firm yield analysis
-
setDemandScale
public void setDemandScale(double scl) sets the demand scale used for firm yield analysis -
getDemandScale
public double getDemandScale()gets the demand scale used for firm yield analysis -
getReferencedStateVariables
adds all StateVariables refereced by diversion rule to the given List -
updateTSProxyList
public void updateTSProxyList()Have top level controller update the TSRecordProxy set for itself and all child controllers and rules- Specified by:
updateTSProxyListin classRssTSLocationObject
-
getActiveTSRecordProxies
add the time series record proxies associated with the active operation set to the given vector- Overrides:
getActiveTSRecordProxiesin classRssTSLocationObject
-
getUnitSystem
public int getUnitSystem() -
getValue
This method should be overriden -
setTSLocationData
-
readData
-
writeData
-
getRuleType
-
setRuleType
-
initialize
public boolean initialize() -
initializeCompute
public boolean initializeCompute()initialize TSRecordProxy for RssTSLocationObject -
getTSRecordProxies
- Overrides:
getTSRecordProxiesin classRssTSLocationObject
-
toString
-
setController
Deprecated. -
getController
Deprecated.get the Rule Controller- Returns:
- the Controller that owns the Rule
-
getSystem
Return the RssSystem of the Conroller- Specified by:
getSystemin classRssTSLocationObject- Returns:
-
getGmtOffset
public int getGmtOffset()get the GMT offset- Returns:
- the GMT Offset
-
useDayOfWeekMultiplier
public boolean useDayOfWeekMultiplier()Returns true if Day Of Week Multiplier to be used -
setUseDayOfWeekMultiplier
public void setUseDayOfWeekMultiplier(boolean tf) Set flag for Day Of Week Multiplier -
setPeriodAverageLimit
public void setPeriodAverageLimit(boolean tf) -
getMultiplier
Returns a new Day of Week Multiplier object -
setMultiplier
Sets the Day of Week Mulitplier -
getDayOfWeekFactor
Get multiplier factor for the day, accounting for day of the week -
useTimeOfDayMultiplier
public boolean useTimeOfDayMultiplier()Returns true if Time Of Day Multiplier to be used -
usePeriodAverageLimit
public boolean usePeriodAverageLimit() -
setUseTimeOfDayMultiplier
public void setUseTimeOfDayMultiplier(boolean tf) Set flag for Time Of Day Multiplier -
setUsePeriodAverageLimit
public void setUsePeriodAverageLimit(boolean tf) Set flag for period average limit use- Parameters:
tf-
-
getTimeOfDayMultiplier
Returns a Time Of Day Multiplier object -
setTimeOfDayMultiplier
Sets the Time of Day Mulitplier -
getTimeOfDayFactor
-
setOpController
- Parameters:
controller-
-
getFieldObject
Description copied from interface:FieldAccessorThis method allows access to java.lang.reflect.Field objects within the implementing class.- Specified by:
getFieldObjectin interfaceFieldAccessor- Overrides:
getFieldObjectin classRssTSLocationObject- Parameters:
fld- The field to get.- Returns:
- The data object that is stored in the given field
-
setFieldObject
Description copied from interface:FieldAccessorThis allows access to fields withing the implementing object to set there data.- Specified by:
setFieldObjectin interfaceFieldAccessor- Overrides:
setFieldObjectin classRssTSLocationObject- Parameters:
fld- The java field object representing the member field to be setfobj- The data to set in that field- Returns:
- returns true if successful
-