Class Conveyor<T>

java.lang.Object
com.amalgamasimulation.discreterate.FlowElement<T>
com.amalgamasimulation.discreterate.Conveyor<T>
Type Parameters:
T - type (class or interface) whose instances represent materials
All Implemented Interfaces:
IAbstractConveyor<T>

public final class Conveyor<T> extends FlowElement<T> implements IAbstractConveyor<T>
A Conveyor is a flow element that transports material from one point in space to another point at a given speed.

Multiple inflow connections are supported. At most one outflow connection can be specified for a Conveyor.

The physical path of material transportation inside the Conveyor is represented by an instance of a Polyline.

A Conveyor is composed of several parts called 'conveyor segments' (see ConveyorSegment. Multiple inflow connections are supported, each inflow connection delivers material to the starting point of some conveyor segment.

Material is delivered by a conveyor segment in a FIFO fashion: the first portion of a material to enter the segment of a Conveyor will be the first portion to be exported from that segment.

The delivery of material from entry to exit is not instantaneous. After material enters a Conveyor, it will take some time to deliver it to the Conveyor's output. This delivery duration (i.e. time required to deliver the material) depends on the 'logical length' of the path of material inside the Conveyor and the speed at which material is being transported within the Conveyor. The logical length is measured in so-called 'logical pixels'. A 'logical pixel' is a measure of distance, and its correspondence to some 'real' measurement units (like meters, inches, etc.) is arbitrary, lies beyond the realm of a Conveyor and is not specified explicitly for a Conveyor. Note that the 'speed' of the Conveyor is also measured in 'logical pixels' per unit of model time.

The Conveyor handles a situation when it can supply material at a higher rate than the downstream flow element can accept. In this case, its Conveyor.DownstreamInflowRateShortagePolicy is applied. The policy is only set in the constructor and cannot be changed later.

Author:
Alexander Morozov