com.azalient.api.b.assignment
Interface ISplit

All Superinterfaces:
IRecord, ISource, RecordR, RecordRW, RecordW, SortableData, StoreRecordRW

public interface ISplit
extends StoreRecordRW, ISource

An interface defining the split between movements for undirected demand - that is, routing that is not guided by a destination. The values in a split are often derived from observed turning counts.


Field Summary
static ISplit[] ZERO
          A static zero-length array, created for convenience, and to save memory
static IDecisionOption[] ZERO_OPTIONS
          A static zero-length array, created for convenience, and to save memory
 
Fields inherited from interface com.azalient.api.a.tables.IRecord
DELETED, KEY_SEP, KEY_SEP_CHAR
 
Method Summary
 boolean applies(IType type, UTime now, DayOfWeek day)
          Return true if this split applies now to the given type
 IDecisionPoint decisionPoint()
          The decisionPoint to which this split applies.
 UTime end()
          The end of the time period for which the split applies
 int index()
          The (0..N) index in the array in the decisionPoint of this ISplit object.
 IMob mob()
          The mob (behaviour-group) to which this split applies, null means all behaviours
 void mob(IMob mob)
          Set the mob (behaviour-group) to which this split applies, null means all behaviours
 void normalize()
          Normalize the shares to each option on this split object, so that they sum to 100%
 double optionShare(int index)
          Return the option share for the given index
 void optionShare(int index, double d, boolean instantAdjust)
          Set the option share for the given index
 double[] optionShares()
          Return an array whose values sum to 1.0, and where the length of the array equals decisionPoint().options();.
 boolean override()
          Return true if this split should override the router for directed trips
 UTime start()
          The start of the time period for which the split applies
 ITerm term()
          The time window to which this splt applies
 void term(ITerm term)
          Set a new time window for this split
 
Methods inherited from interface com.azalient.api.file.StoreRecordRW
canRename, rename, store
 
Methods inherited from interface com.azalient.api.file.RecordR
extraSet, finished, isApplicable, isEditable, set
 
Methods inherited from interface com.azalient.api.a.tables.IRecord
name
 
Methods inherited from interface com.azalient.api.file.RecordW
extraCols, extraGet, extraGetB, extraGetD, extraGetI, extraGetS, extraGetT, get, isVolatile
 
Methods inherited from interface com.azalient.api.b.demand.ISource
name, sourceType
 

Field Detail

ZERO

static final ISplit[] ZERO
A static zero-length array, created for convenience, and to save memory


ZERO_OPTIONS

static final IDecisionOption[] ZERO_OPTIONS
A static zero-length array, created for convenience, and to save memory

Method Detail

decisionPoint

IDecisionPoint decisionPoint()
The decisionPoint to which this split applies. The name of this split is decisionPoint~index


index

int index()
The (0..N) index in the array in the decisionPoint of this ISplit object. You might have multiple Splits for different divisions or if you needed to vary the turn shares by time of day. The name of this split is connector~index.


term

ITerm term()
The time window to which this splt applies


term

void term(ITerm term)
Set a new time window for this split


start

UTime start()
The start of the time period for which the split applies


end

UTime end()
The end of the time period for which the split applies


mob

IMob mob()
The mob (behaviour-group) to which this split applies, null means all behaviours


mob

void mob(IMob mob)
Set the mob (behaviour-group) to which this split applies, null means all behaviours


optionShares

double[] optionShares()
Return an array whose values sum to 1.0, and where the length of the array equals decisionPoint().options();. Options vary by context.

When applied to links or walkways, options are turns, and are numbered from the kerb side to the median side. For example, if you want 30% to the kerbside turn (UK left), 50% ahead and 20% to the median (UK right), this would be { 0.3, 0.5, 0.2 }

When applied to Dwells, options are stay on / get off.


optionShare

double optionShare(int index)
Return the option share for the given index


optionShare

void optionShare(int index,
                 double d,
                 boolean instantAdjust)
Set the option share for the given index


applies

boolean applies(IType type,
                UTime now,
                DayOfWeek day)
Return true if this split applies now to the given type


normalize

void normalize()
Normalize the shares to each option on this split object, so that they sum to 100%


override

boolean override()
Return true if this split should override the router for directed trips