1 /*
2  * sys-emu - A system emulator for tutorials
3  * Copyright (C) 2018 - 2019 osdevelopment-info
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU Affero General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU Affero General Public License for more details.
14  *
15  * You should have received a copy of the GNU Affero General Public License
16  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
17  */
18 package info.osdevelopment.sysemu.rest
19 
20 import akka.http.scaladsl.model.headers.`Content-Type`
21 import akka.http.scaladsl.model.{MediaTypes, StatusCodes}
22 import akka.http.scaladsl.server.Directives._
23 import akka.http.scaladsl.server.Route
24 import info.osdevelopment.sysemu.processor.ProcessorDescriptor
25 import info.osdevelopment.sysemu.model.{MessageModel, ProcessorModel, SysEmuJsonProtocol}
26 import io.swagger.v3.oas.annotations.enums.ParameterIn
27 import io.swagger.v3.oas.annotations.{Operation, Parameter}
28 import io.swagger.v3.oas.annotations.media.{ArraySchema, Content, Schema}
29 import io.swagger.v3.oas.annotations.responses.ApiResponse
30 import javax.ws.rs.{GET, Path}
31 import org.slf4j.{Logger, LoggerFactory}
32 import scala.language.postfixOps
33 
34 @Path("/processor")
35 class RestProcessorService extends SysEmuJsonProtocol {
36 
37   val log: Logger = LoggerFactory getLogger classOf[RestProcessorService]
38 
39   def route: Route = {
40     respondWithHeader(`Content-Type`(MediaTypes.`application/json`))
41     pathPrefix("processor") {
42       getAllProcessors ~
43       getProcessor
44     }
45   }
46 
47   @GET
48   @Path("")
49   @Operation(
50     summary = "Get all processors",
51     description = "Return all processors available",
52     responses = Array(
53       new ApiResponse(
54         responseCode = "200",
55         description = "All processors",
56         content = Array(
57           new Content(
58             array = new ArraySchema(
59               schema = new Schema(
60                 implementation = classOf[String],
61                 example = "8086")
62             ),
63             mediaType = "application/json"
64           )
65         )
66       ),
67       new ApiResponse(
68         responseCode = "500",
69         description = "Internal server error"
70       )
71     )
72   )
73   def getAllProcessors: Route = {
74     pathEndOrSingleSlash {
75       get {
76         val processorDescriptors = ProcessorDescriptor.loadProcessors()
77         complete(StatusCodes.OK, processorDescriptors.map(d => d.name))
78       }
79     }
80   }
81 
82   @GET
83   @Path("/{name}")
84   @Operation(
85     summary = "Return a specific processor",
86     description = "Search for the processor specified by the name in the path and return it",
87     parameters = Array(
88       new Parameter(
89         in = ParameterIn.PATH,
90         name = "name",
91         schema = new Schema(
92           name = "name",
93           description = "The name of the processor to retrieve",
94           `type` = "string",
95           example = "8086"
96         )
97       )
98     ),
99     responses = Array(
100       new ApiResponse(
101         responseCode = "200",
102         description = "The processor requested",
103         content = Array(
104           new Content(
105             schema = new Schema(implementation = classOf[ProcessorModel]),
106             mediaType = "application/json"
107           )
108         )
109       ),
110       new ApiResponse(
111         responseCode = "404",
112         description = "When the processor with the given name cannot be found",
113         content = Array(
114           new Content(
115             schema = new Schema(implementation = classOf[MessageModel]),
116             mediaType = "application/json"
117           )
118         )
119       ),
120       new ApiResponse(
121         responseCode = "500",
122         description = "Internal server error"
123       )
124     )
125   )
126   def getProcessor: Route = {
127     pathPrefix(Segment) { name =>
128       get {
129         val processorDescriptor = ProcessorDescriptor loadProcessor name
130         processorDescriptor match {
131           case Some(descriptor) => complete(StatusCodes.OK, ProcessorModel(descriptor))
132           case None =>
133             complete(StatusCodes.NotFound, new MessageModel("No processor with name " + name + " can be found."))
134         }
135       }
136     }
137   }
138 
139 }
Line Stmt Id Pos Tree Symbol Code
37 457 1613 - 1666 Apply org.slf4j.LoggerFactory.getLogger org.slf4j.LoggerFactory.getLogger(classOf[info.osdevelopment.sysemu.rest.RestProcessorService])
40 460 1713 - 1758 Apply akka.http.scaladsl.model.headers.Content-Type.apply akka.http.scaladsl.model.headers.Content-Type.apply(model.this.ContentType.apply(akka.http.scaladsl.model.MediaTypes.application/json))
40 459 1728 - 1757 ApplyImplicitView akka.http.scaladsl.model.ContentType.apply model.this.ContentType.apply(akka.http.scaladsl.model.MediaTypes.application/json)
40 461 1695 - 1759 Apply akka.http.scaladsl.server.directives.RespondWithDirectives.respondWithHeader akka.http.scaladsl.server.Directives.respondWithHeader(akka.http.scaladsl.model.headers.Content-Type.apply(model.this.ContentType.apply(akka.http.scaladsl.model.MediaTypes.application/json)))
40 458 1728 - 1757 Select akka.http.scaladsl.model.MediaTypes.application/json akka.http.scaladsl.model.MediaTypes.application/json
41 463 1764 - 1787 Apply akka.http.scaladsl.server.directives.PathDirectives.pathPrefix akka.http.scaladsl.server.Directives.pathPrefix[Unit](akka.http.scaladsl.server.Directives._segmentStringToPathMatcher("processor"))
41 462 1775 - 1786 ApplyImplicitView akka.http.scaladsl.server.ImplicitPathMatcherConstruction._segmentStringToPathMatcher akka.http.scaladsl.server.Directives._segmentStringToPathMatcher("processor")
41 467 1764 - 1839 Apply scala.Function1.apply server.this.Directive.addByNameNullaryApply(akka.http.scaladsl.server.Directives.pathPrefix[Unit](akka.http.scaladsl.server.Directives._segmentStringToPathMatcher("processor"))).apply(akka.http.scaladsl.server.Directives._enhanceRouteWithConcatenation(RestProcessorService.this.getAllProcessors).~(RestProcessorService.this.getProcessor))
42 464 1796 - 1812 Select info.osdevelopment.sysemu.rest.RestProcessorService.getAllProcessors RestProcessorService.this.getAllProcessors
42 466 1796 - 1833 Apply akka.http.scaladsl.server.RouteConcatenation.RouteWithConcatenation.~ akka.http.scaladsl.server.Directives._enhanceRouteWithConcatenation(RestProcessorService.this.getAllProcessors).~(RestProcessorService.this.getProcessor)
43 465 1821 - 1833 Select info.osdevelopment.sysemu.rest.RestProcessorService.getProcessor RestProcessorService.this.getProcessor
74 468 2531 - 2551 Select akka.http.scaladsl.server.directives.PathDirectives.pathEndOrSingleSlash akka.http.scaladsl.server.Directives.pathEndOrSingleSlash
74 484 2531 - 2723 Apply scala.Function1.apply server.this.Directive.addByNameNullaryApply(akka.http.scaladsl.server.Directives.pathEndOrSingleSlash).apply(server.this.Directive.addByNameNullaryApply(akka.http.scaladsl.server.Directives.get).apply({ val processorDescriptors: Iterable[info.osdevelopment.sysemu.processor.ProcessorDescriptor] = info.osdevelopment.sysemu.processor.ProcessorDescriptor.loadProcessors(); akka.http.scaladsl.server.Directives.complete(marshalling.this.ToResponseMarshallable.apply[(akka.http.scaladsl.model.StatusCodes.Success, Iterable[String])](scala.Tuple2.apply[akka.http.scaladsl.model.StatusCodes.Success, Iterable[String]](akka.http.scaladsl.model.StatusCodes.OK, processorDescriptors.map[String](((d: info.osdevelopment.sysemu.processor.ProcessorDescriptor) => d.name))))(marshalling.this.Marshaller.fromStatusCodeAndValue[akka.http.scaladsl.model.StatusCodes.Success, Iterable[String]](scala.Predef.$conforms[akka.http.scaladsl.model.StatusCodes.Success], RestProcessorService.this.sprayJsonMarshaller[Iterable[String]](RestProcessorService.this.iterableFormat[String](RestProcessorService.this.StringJsonFormat), RestProcessorService.this.sprayJsonMarshaller$default$2[Iterable[String]])))) }))
75 469 2560 - 2563 Select akka.http.scaladsl.server.directives.MethodDirectives.get akka.http.scaladsl.server.Directives.get
75 483 2560 - 2717 Apply scala.Function1.apply server.this.Directive.addByNameNullaryApply(akka.http.scaladsl.server.Directives.get).apply({ val processorDescriptors: Iterable[info.osdevelopment.sysemu.processor.ProcessorDescriptor] = info.osdevelopment.sysemu.processor.ProcessorDescriptor.loadProcessors(); akka.http.scaladsl.server.Directives.complete(marshalling.this.ToResponseMarshallable.apply[(akka.http.scaladsl.model.StatusCodes.Success, Iterable[String])](scala.Tuple2.apply[akka.http.scaladsl.model.StatusCodes.Success, Iterable[String]](akka.http.scaladsl.model.StatusCodes.OK, processorDescriptors.map[String](((d: info.osdevelopment.sysemu.processor.ProcessorDescriptor) => d.name))))(marshalling.this.Marshaller.fromStatusCodeAndValue[akka.http.scaladsl.model.StatusCodes.Success, Iterable[String]](scala.Predef.$conforms[akka.http.scaladsl.model.StatusCodes.Success], RestProcessorService.this.sprayJsonMarshaller[Iterable[String]](RestProcessorService.this.iterableFormat[String](RestProcessorService.this.StringJsonFormat), RestProcessorService.this.sprayJsonMarshaller$default$2[Iterable[String]])))) })
76 470 2601 - 2637 Apply info.osdevelopment.sysemu.processor.ProcessorDescriptor.loadProcessors info.osdevelopment.sysemu.processor.ProcessorDescriptor.loadProcessors()
77 478 2654 - 2654 TypeApply akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport.sprayJsonMarshaller$default$2 RestProcessorService.this.sprayJsonMarshaller$default$2[Iterable[String]]
77 472 2701 - 2707 Select info.osdevelopment.sysemu.processor.ProcessorDescriptor.name d.name
77 481 2646 - 2709 ApplyToImplicitArgs akka.http.scaladsl.marshalling.ToResponseMarshallable.apply marshalling.this.ToResponseMarshallable.apply[(akka.http.scaladsl.model.StatusCodes.Success, Iterable[String])](scala.Tuple2.apply[akka.http.scaladsl.model.StatusCodes.Success, Iterable[String]](akka.http.scaladsl.model.StatusCodes.OK, processorDescriptors.map[String](((d: info.osdevelopment.sysemu.processor.ProcessorDescriptor) => d.name))))(marshalling.this.Marshaller.fromStatusCodeAndValue[akka.http.scaladsl.model.StatusCodes.Success, Iterable[String]](scala.Predef.$conforms[akka.http.scaladsl.model.StatusCodes.Success], RestProcessorService.this.sprayJsonMarshaller[Iterable[String]](RestProcessorService.this.iterableFormat[String](RestProcessorService.this.StringJsonFormat), RestProcessorService.this.sprayJsonMarshaller$default$2[Iterable[String]])))
77 480 2654 - 2654 ApplyToImplicitArgs akka.http.scaladsl.marshalling.PredefinedToResponseMarshallers.fromStatusCodeAndValue marshalling.this.Marshaller.fromStatusCodeAndValue[akka.http.scaladsl.model.StatusCodes.Success, Iterable[String]](scala.Predef.$conforms[akka.http.scaladsl.model.StatusCodes.Success], RestProcessorService.this.sprayJsonMarshaller[Iterable[String]](RestProcessorService.this.iterableFormat[String](RestProcessorService.this.StringJsonFormat), RestProcessorService.this.sprayJsonMarshaller$default$2[Iterable[String]]))
77 474 2646 - 2709 Apply scala.Tuple2.apply scala.Tuple2.apply[akka.http.scaladsl.model.StatusCodes.Success, Iterable[String]](akka.http.scaladsl.model.StatusCodes.OK, processorDescriptors.map[String](((d: info.osdevelopment.sysemu.processor.ProcessorDescriptor) => d.name)))
77 477 2654 - 2654 ApplyToImplicitArgs spray.json.CollectionFormats.iterableFormat RestProcessorService.this.iterableFormat[String](RestProcessorService.this.StringJsonFormat)
77 471 2655 - 2669 Select akka.http.scaladsl.model.StatusCodes.OK akka.http.scaladsl.model.StatusCodes.OK
77 479 2654 - 2654 ApplyToImplicitArgs akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport.sprayJsonMarshaller RestProcessorService.this.sprayJsonMarshaller[Iterable[String]](RestProcessorService.this.iterableFormat[String](RestProcessorService.this.StringJsonFormat), RestProcessorService.this.sprayJsonMarshaller$default$2[Iterable[String]])
77 482 2646 - 2709 Apply akka.http.scaladsl.server.directives.RouteDirectives.complete akka.http.scaladsl.server.Directives.complete(marshalling.this.ToResponseMarshallable.apply[(akka.http.scaladsl.model.StatusCodes.Success, Iterable[String])](scala.Tuple2.apply[akka.http.scaladsl.model.StatusCodes.Success, Iterable[String]](akka.http.scaladsl.model.StatusCodes.OK, processorDescriptors.map[String](((d: info.osdevelopment.sysemu.processor.ProcessorDescriptor) => d.name))))(marshalling.this.Marshaller.fromStatusCodeAndValue[akka.http.scaladsl.model.StatusCodes.Success, Iterable[String]](scala.Predef.$conforms[akka.http.scaladsl.model.StatusCodes.Success], RestProcessorService.this.sprayJsonMarshaller[Iterable[String]](RestProcessorService.this.iterableFormat[String](RestProcessorService.this.StringJsonFormat), RestProcessorService.this.sprayJsonMarshaller$default$2[Iterable[String]]))))
77 473 2671 - 2708 Apply scala.collection.IterableOps.map processorDescriptors.map[String](((d: info.osdevelopment.sysemu.processor.ProcessorDescriptor) => d.name))
77 476 2654 - 2654 Select spray.json.BasicFormats.StringJsonFormat RestProcessorService.this.StringJsonFormat
77 475 2654 - 2654 TypeApply scala.Predef.$conforms scala.Predef.$conforms[akka.http.scaladsl.model.StatusCodes.Success]
127 487 4018 - 4018 TypeApply akka.http.scaladsl.server.util.ApplyConverterInstances.hac1 util.this.ApplyConverter.hac1[String]
127 486 4008 - 4027 Apply akka.http.scaladsl.server.directives.PathDirectives.pathPrefix akka.http.scaladsl.server.Directives.pathPrefix[(String,)](akka.http.scaladsl.server.Directives.Segment)
127 512 4008 - 4407 Apply scala.Function1.apply server.this.Directive.addDirectiveApply[(String,)](akka.http.scaladsl.server.Directives.pathPrefix[(String,)](akka.http.scaladsl.server.Directives.Segment))(util.this.ApplyConverter.hac1[String]).apply(((name: String) => server.this.Directive.addByNameNullaryApply(akka.http.scaladsl.server.Directives.get).apply({ val processorDescriptor: Option[info.osdevelopment.sysemu.processor.ProcessorDescriptor] = info.osdevelopment.sysemu.processor.ProcessorDescriptor.loadProcessor(name); processorDescriptor match { case (value: info.osdevelopment.sysemu.processor.ProcessorDescriptor)Some[info.osdevelopment.sysemu.processor.ProcessorDescriptor]((descriptor @ _)) => akka.http.scaladsl.server.Directives.complete(marshalling.this.ToResponseMarshallable.apply[(akka.http.scaladsl.model.StatusCodes.Success, info.osdevelopment.sysemu.model.ProcessorModel)](scala.Tuple2.apply[akka.http.scaladsl.model.StatusCodes.Success, info.osdevelopment.sysemu.model.ProcessorModel](akka.http.scaladsl.model.StatusCodes.OK, info.osdevelopment.sysemu.model.ProcessorModel.apply(descriptor)))(marshalling.this.Marshaller.fromStatusCodeAndValue[akka.http.scaladsl.model.StatusCodes.Success, info.osdevelopment.sysemu.model.ProcessorModel](scala.Predef.$conforms[akka.http.scaladsl.model.StatusCodes.Success], RestProcessorService.this.sprayJsonMarshaller[info.osdevelopment.sysemu.model.ProcessorModel](RestProcessorService.this.ProcessorJsonFormat, RestProcessorService.this.sprayJsonMarshaller$default$2[info.osdevelopment.sysemu.model.ProcessorModel])))) case scala.None => akka.http.scaladsl.server.Directives.complete(marshalling.this.ToResponseMarshallable.apply[(akka.http.scaladsl.model.StatusCodes.ClientError, info.osdevelopment.sysemu.model.MessageModel)](scala.Tuple2.apply[akka.http.scaladsl.model.StatusCodes.ClientError, info.osdevelopment.sysemu.model.MessageModel](akka.http.scaladsl.model.StatusCodes.NotFound, new info.osdevelopment.sysemu.model.MessageModel("No processor with name ".+(name).+(" can be found."))))(marshalling.this.Marshaller.fromStatusCodeAndValue[akka.http.scaladsl.model.StatusCodes.ClientError, info.osdevelopment.sysemu.model.MessageModel](scala.Predef.$conforms[akka.http.scaladsl.model.StatusCodes.ClientError], RestProcessorService.this.sprayJsonMarshaller[info.osdevelopment.sysemu.model.MessageModel](RestProcessorService.this.MessageJsonFormat, RestProcessorService.this.sprayJsonMarshaller$default$2[info.osdevelopment.sysemu.model.MessageModel])))) } })))
127 485 4019 - 4026 Select akka.http.scaladsl.server.PathMatchers.Segment akka.http.scaladsl.server.Directives.Segment
128 488 4044 - 4047 Select akka.http.scaladsl.server.directives.MethodDirectives.get akka.http.scaladsl.server.Directives.get
128 511 4044 - 4401 Apply scala.Function1.apply server.this.Directive.addByNameNullaryApply(akka.http.scaladsl.server.Directives.get).apply({ val processorDescriptor: Option[info.osdevelopment.sysemu.processor.ProcessorDescriptor] = info.osdevelopment.sysemu.processor.ProcessorDescriptor.loadProcessor(name); processorDescriptor match { case (value: info.osdevelopment.sysemu.processor.ProcessorDescriptor)Some[info.osdevelopment.sysemu.processor.ProcessorDescriptor]((descriptor @ _)) => akka.http.scaladsl.server.Directives.complete(marshalling.this.ToResponseMarshallable.apply[(akka.http.scaladsl.model.StatusCodes.Success, info.osdevelopment.sysemu.model.ProcessorModel)](scala.Tuple2.apply[akka.http.scaladsl.model.StatusCodes.Success, info.osdevelopment.sysemu.model.ProcessorModel](akka.http.scaladsl.model.StatusCodes.OK, info.osdevelopment.sysemu.model.ProcessorModel.apply(descriptor)))(marshalling.this.Marshaller.fromStatusCodeAndValue[akka.http.scaladsl.model.StatusCodes.Success, info.osdevelopment.sysemu.model.ProcessorModel](scala.Predef.$conforms[akka.http.scaladsl.model.StatusCodes.Success], RestProcessorService.this.sprayJsonMarshaller[info.osdevelopment.sysemu.model.ProcessorModel](RestProcessorService.this.ProcessorJsonFormat, RestProcessorService.this.sprayJsonMarshaller$default$2[info.osdevelopment.sysemu.model.ProcessorModel])))) case scala.None => akka.http.scaladsl.server.Directives.complete(marshalling.this.ToResponseMarshallable.apply[(akka.http.scaladsl.model.StatusCodes.ClientError, info.osdevelopment.sysemu.model.MessageModel)](scala.Tuple2.apply[akka.http.scaladsl.model.StatusCodes.ClientError, info.osdevelopment.sysemu.model.MessageModel](akka.http.scaladsl.model.StatusCodes.NotFound, new info.osdevelopment.sysemu.model.MessageModel("No processor with name ".+(name).+(" can be found."))))(marshalling.this.Marshaller.fromStatusCodeAndValue[akka.http.scaladsl.model.StatusCodes.ClientError, info.osdevelopment.sysemu.model.MessageModel](scala.Predef.$conforms[akka.http.scaladsl.model.StatusCodes.ClientError], RestProcessorService.this.sprayJsonMarshaller[info.osdevelopment.sysemu.model.MessageModel](RestProcessorService.this.MessageJsonFormat, RestProcessorService.this.sprayJsonMarshaller$default$2[info.osdevelopment.sysemu.model.MessageModel])))) } })
129 489 4084 - 4122 Apply info.osdevelopment.sysemu.processor.ProcessorDescriptor.loadProcessor info.osdevelopment.sysemu.processor.ProcessorDescriptor.loadProcessor(name)
131 496 4202 - 4202 ApplyToImplicitArgs akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport.sprayJsonMarshaller RestProcessorService.this.sprayJsonMarshaller[info.osdevelopment.sysemu.model.ProcessorModel](RestProcessorService.this.ProcessorJsonFormat, RestProcessorService.this.sprayJsonMarshaller$default$2[info.osdevelopment.sysemu.model.ProcessorModel])
131 490 4203 - 4217 Select akka.http.scaladsl.model.StatusCodes.OK akka.http.scaladsl.model.StatusCodes.OK
131 499 4194 - 4246 Apply akka.http.scaladsl.server.directives.RouteDirectives.complete akka.http.scaladsl.server.Directives.complete(marshalling.this.ToResponseMarshallable.apply[(akka.http.scaladsl.model.StatusCodes.Success, info.osdevelopment.sysemu.model.ProcessorModel)](scala.Tuple2.apply[akka.http.scaladsl.model.StatusCodes.Success, info.osdevelopment.sysemu.model.ProcessorModel](akka.http.scaladsl.model.StatusCodes.OK, info.osdevelopment.sysemu.model.ProcessorModel.apply(descriptor)))(marshalling.this.Marshaller.fromStatusCodeAndValue[akka.http.scaladsl.model.StatusCodes.Success, info.osdevelopment.sysemu.model.ProcessorModel](scala.Predef.$conforms[akka.http.scaladsl.model.StatusCodes.Success], RestProcessorService.this.sprayJsonMarshaller[info.osdevelopment.sysemu.model.ProcessorModel](RestProcessorService.this.ProcessorJsonFormat, RestProcessorService.this.sprayJsonMarshaller$default$2[info.osdevelopment.sysemu.model.ProcessorModel]))))
131 498 4194 - 4246 ApplyToImplicitArgs akka.http.scaladsl.marshalling.ToResponseMarshallable.apply marshalling.this.ToResponseMarshallable.apply[(akka.http.scaladsl.model.StatusCodes.Success, info.osdevelopment.sysemu.model.ProcessorModel)](scala.Tuple2.apply[akka.http.scaladsl.model.StatusCodes.Success, info.osdevelopment.sysemu.model.ProcessorModel](akka.http.scaladsl.model.StatusCodes.OK, info.osdevelopment.sysemu.model.ProcessorModel.apply(descriptor)))(marshalling.this.Marshaller.fromStatusCodeAndValue[akka.http.scaladsl.model.StatusCodes.Success, info.osdevelopment.sysemu.model.ProcessorModel](scala.Predef.$conforms[akka.http.scaladsl.model.StatusCodes.Success], RestProcessorService.this.sprayJsonMarshaller[info.osdevelopment.sysemu.model.ProcessorModel](RestProcessorService.this.ProcessorJsonFormat, RestProcessorService.this.sprayJsonMarshaller$default$2[info.osdevelopment.sysemu.model.ProcessorModel])))
131 492 4194 - 4246 Apply scala.Tuple2.apply scala.Tuple2.apply[akka.http.scaladsl.model.StatusCodes.Success, info.osdevelopment.sysemu.model.ProcessorModel](akka.http.scaladsl.model.StatusCodes.OK, info.osdevelopment.sysemu.model.ProcessorModel.apply(descriptor))
131 495 4202 - 4202 TypeApply akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport.sprayJsonMarshaller$default$2 RestProcessorService.this.sprayJsonMarshaller$default$2[info.osdevelopment.sysemu.model.ProcessorModel]
131 497 4202 - 4202 ApplyToImplicitArgs akka.http.scaladsl.marshalling.PredefinedToResponseMarshallers.fromStatusCodeAndValue marshalling.this.Marshaller.fromStatusCodeAndValue[akka.http.scaladsl.model.StatusCodes.Success, info.osdevelopment.sysemu.model.ProcessorModel](scala.Predef.$conforms[akka.http.scaladsl.model.StatusCodes.Success], RestProcessorService.this.sprayJsonMarshaller[info.osdevelopment.sysemu.model.ProcessorModel](RestProcessorService.this.ProcessorJsonFormat, RestProcessorService.this.sprayJsonMarshaller$default$2[info.osdevelopment.sysemu.model.ProcessorModel]))
131 491 4219 - 4245 Apply info.osdevelopment.sysemu.model.ProcessorModel.apply info.osdevelopment.sysemu.model.ProcessorModel.apply(descriptor)
131 494 4202 - 4202 Select info.osdevelopment.sysemu.model.SysEmuJsonProtocol.ProcessorJsonFormat RestProcessorService.this.ProcessorJsonFormat
131 493 4202 - 4202 TypeApply scala.Predef.$conforms scala.Predef.$conforms[akka.http.scaladsl.model.StatusCodes.Success]
133 505 4290 - 4290 Select info.osdevelopment.sysemu.model.SysEmuJsonProtocol.MessageJsonFormat RestProcessorService.this.MessageJsonFormat
133 508 4290 - 4290 ApplyToImplicitArgs akka.http.scaladsl.marshalling.PredefinedToResponseMarshallers.fromStatusCodeAndValue marshalling.this.Marshaller.fromStatusCodeAndValue[akka.http.scaladsl.model.StatusCodes.ClientError, info.osdevelopment.sysemu.model.MessageModel](scala.Predef.$conforms[akka.http.scaladsl.model.StatusCodes.ClientError], RestProcessorService.this.sprayJsonMarshaller[info.osdevelopment.sysemu.model.MessageModel](RestProcessorService.this.MessageJsonFormat, RestProcessorService.this.sprayJsonMarshaller$default$2[info.osdevelopment.sysemu.model.MessageModel]))
133 507 4290 - 4290 ApplyToImplicitArgs akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport.sprayJsonMarshaller RestProcessorService.this.sprayJsonMarshaller[info.osdevelopment.sysemu.model.MessageModel](RestProcessorService.this.MessageJsonFormat, RestProcessorService.this.sprayJsonMarshaller$default$2[info.osdevelopment.sysemu.model.MessageModel])
133 501 4330 - 4381 Apply java.lang.String.+ "No processor with name ".+(name).+(" can be found.")
133 510 4282 - 4383 Apply akka.http.scaladsl.server.directives.RouteDirectives.complete akka.http.scaladsl.server.Directives.complete(marshalling.this.ToResponseMarshallable.apply[(akka.http.scaladsl.model.StatusCodes.ClientError, info.osdevelopment.sysemu.model.MessageModel)](scala.Tuple2.apply[akka.http.scaladsl.model.StatusCodes.ClientError, info.osdevelopment.sysemu.model.MessageModel](akka.http.scaladsl.model.StatusCodes.NotFound, new info.osdevelopment.sysemu.model.MessageModel("No processor with name ".+(name).+(" can be found."))))(marshalling.this.Marshaller.fromStatusCodeAndValue[akka.http.scaladsl.model.StatusCodes.ClientError, info.osdevelopment.sysemu.model.MessageModel](scala.Predef.$conforms[akka.http.scaladsl.model.StatusCodes.ClientError], RestProcessorService.this.sprayJsonMarshaller[info.osdevelopment.sysemu.model.MessageModel](RestProcessorService.this.MessageJsonFormat, RestProcessorService.this.sprayJsonMarshaller$default$2[info.osdevelopment.sysemu.model.MessageModel]))))
133 504 4290 - 4290 TypeApply scala.Predef.$conforms scala.Predef.$conforms[akka.http.scaladsl.model.StatusCodes.ClientError]
133 503 4282 - 4383 Apply scala.Tuple2.apply scala.Tuple2.apply[akka.http.scaladsl.model.StatusCodes.ClientError, info.osdevelopment.sysemu.model.MessageModel](akka.http.scaladsl.model.StatusCodes.NotFound, new info.osdevelopment.sysemu.model.MessageModel("No processor with name ".+(name).+(" can be found.")))
133 506 4290 - 4290 TypeApply akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport.sprayJsonMarshaller$default$2 RestProcessorService.this.sprayJsonMarshaller$default$2[info.osdevelopment.sysemu.model.MessageModel]
133 509 4282 - 4383 ApplyToImplicitArgs akka.http.scaladsl.marshalling.ToResponseMarshallable.apply marshalling.this.ToResponseMarshallable.apply[(akka.http.scaladsl.model.StatusCodes.ClientError, info.osdevelopment.sysemu.model.MessageModel)](scala.Tuple2.apply[akka.http.scaladsl.model.StatusCodes.ClientError, info.osdevelopment.sysemu.model.MessageModel](akka.http.scaladsl.model.StatusCodes.NotFound, new info.osdevelopment.sysemu.model.MessageModel("No processor with name ".+(name).+(" can be found."))))(marshalling.this.Marshaller.fromStatusCodeAndValue[akka.http.scaladsl.model.StatusCodes.ClientError, info.osdevelopment.sysemu.model.MessageModel](scala.Predef.$conforms[akka.http.scaladsl.model.StatusCodes.ClientError], RestProcessorService.this.sprayJsonMarshaller[info.osdevelopment.sysemu.model.MessageModel](RestProcessorService.this.MessageJsonFormat, RestProcessorService.this.sprayJsonMarshaller$default$2[info.osdevelopment.sysemu.model.MessageModel])))
133 500 4291 - 4311 Select akka.http.scaladsl.model.StatusCodes.NotFound akka.http.scaladsl.model.StatusCodes.NotFound
133 502 4313 - 4382 Apply info.osdevelopment.sysemu.model.MessageModel.<init> new info.osdevelopment.sysemu.model.MessageModel("No processor with name ".+(name).+(" can be found."))