using afIoc::Injectusing afIoc::Registryusing web::WebRes** (Service) - Contribute your 'HttpStatusProcessor' implementations to this.** ** pre>** @Contribute { serviceType=HttpStatusProcessors# }** static Void contributeHttpStatusProcessors(MappedConfig conf) {** conf[404] = conf.autobuild(My404PageHandler#)** }** <pre** ** If a processor for the given status code can not be found, the default page (processor) is used.** The default page can be set in `afIocConfig::ApplicationDefaults`.** ** pre>** @Contribute { serviceType=ApplicationDefaults# } ** static Void configureApplicationDefaults(MappedConfig conf) {** conf[BedSheetConfigIds.httpStatusDefaultPage] = MyStatusPage()** }** <pre** ** @see `BedSheetConfigIds.defaultHttpStatusProcessor`** ** @uses a MappedConfig of 'Int:HttpStatusProcessor'constmixin HttpStatusProcessors : ResponseProcessor {** Returns the result of processing the given `HttpStatus` as per the contributed processors. @NoDoc // not for public useoverrideabstract Obj process(Obj response)}internalconstclass HttpStatusProcessorsImpl : HttpStatusProcessors { @Inject @Config { id="afBedSheet.httpStatusProcessors.default"}privateconst HttpStatusProcessor defaultHttpStatusProcessorprivateconst Int:HttpStatusProcessor processorsinternalnew make(Int:HttpStatusProcessor processors, |This|in){ in(this)this.processors = processors.toImmutable}** Returns the result of processing the given `HttpStatus` as per the contributed processors.override Obj process(Obj response){ httpStatus := (HttpStatus) response return get(httpStatus.code).process(httpStatus)}private HttpStatusProcessor get(Int status){ processors[status] ?: defaultHttpStatusProcessor}}