in sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/reflect/DoFnSignature.java [265:322]
public <ResultT> ResultT match(Cases<ResultT> cases) {
// This could be done with reflection, but since the number of cases is small and known,
// they are simply inlined.
if (this instanceof StartBundleContextParameter) {
return cases.dispatch((StartBundleContextParameter) this);
} else if (this instanceof FinishBundleContextParameter) {
return cases.dispatch((FinishBundleContextParameter) this);
} else if (this instanceof ProcessContextParameter) {
return cases.dispatch((ProcessContextParameter) this);
} else if (this instanceof OnTimerContextParameter) {
return cases.dispatch((OnTimerContextParameter) this);
} else if (this instanceof WindowParameter) {
return cases.dispatch((WindowParameter) this);
} else if (this instanceof PaneInfoParameter) {
return cases.dispatch((PaneInfoParameter) this);
} else if (this instanceof RestrictionParameter) {
return cases.dispatch((RestrictionParameter) this);
} else if (this instanceof RestrictionTrackerParameter) {
return cases.dispatch((RestrictionTrackerParameter) this);
} else if (this instanceof WatermarkEstimatorParameter) {
return cases.dispatch((WatermarkEstimatorParameter) this);
} else if (this instanceof WatermarkEstimatorStateParameter) {
return cases.dispatch((WatermarkEstimatorStateParameter) this);
} else if (this instanceof StateParameter) {
return cases.dispatch((StateParameter) this);
} else if (this instanceof TimerParameter) {
return cases.dispatch((TimerParameter) this);
} else if (this instanceof PipelineOptionsParameter) {
return cases.dispatch((PipelineOptionsParameter) this);
} else if (this instanceof ElementParameter) {
return cases.dispatch((ElementParameter) this);
} else if (this instanceof SchemaElementParameter) {
return cases.dispatch((SchemaElementParameter) this);
} else if (this instanceof TimestampParameter) {
return cases.dispatch((TimestampParameter) this);
} else if (this instanceof OutputReceiverParameter) {
return cases.dispatch((OutputReceiverParameter) this);
} else if (this instanceof TaggedOutputReceiverParameter) {
return cases.dispatch((TaggedOutputReceiverParameter) this);
} else if (this instanceof TimeDomainParameter) {
return cases.dispatch((TimeDomainParameter) this);
} else if (this instanceof SideInputParameter) {
return cases.dispatch((SideInputParameter) this);
} else if (this instanceof TimerFamilyParameter) {
return cases.dispatch((TimerFamilyParameter) this);
} else if (this instanceof TimerIdParameter) {
return cases.dispatch((TimerIdParameter) this);
} else if (this instanceof BundleFinalizerParameter) {
return cases.dispatch((BundleFinalizerParameter) this);
} else if (this instanceof KeyParameter) {
return cases.dispatch((KeyParameter) this);
} else {
throw new IllegalStateException(
String.format(
"Attempt to case match on unknown %s subclass %s",
Parameter.class.getCanonicalName(), this.getClass().getCanonicalName()));
}
}