/** Create the plates node networks. */ @Override public void buildPhase() throws PipelineException { StageInformation stageInfo = getStageInformation(); /* stage prerequisites */ { /* lock the latest version of all of the prerequisites */ lockNodePrerequisites(); /* lock the specific version of the source images node we are delivering */ pClient.lock( getAuthor(), getView(), pSourceVersion.getName(), pSourceVersion.getVersionID()); } /* the delivery network */ { String readQtDeliverableImagesNodeName = pDeliverNamer.getReadQtDeliverableImagesNode(); { NukeReadStage stage = new NukeReadStage( stageInfo, pContext, pClient, readQtDeliverableImagesNodeName, pSourceVersion.getName()); stage.addSingleParamValue("ReadName", "Images"); addTaskAnnotation(stage, NodePurpose.Prepare); stage.build(); } String qtDeliverSlateNukeNodeName = pDeliverNamer.getQtDeliverSlateNukeNode(); { SlateSubstStage stage = new SlateSubstStage( stageInfo, pContext, pClient, qtDeliverSlateNukeNodeName, pSlateNodeName, pDeliveryType, pDeliverable, pClientVersion, pClientShotName, pLensInfo, pTakeInfo, pSourceVersion, pNotes, pSlateHold); addTaskAnnotation(stage, NodePurpose.Prepare); stage.build(); } String qtDeliverSlatedImagesNodeName = pDeliverNamer.getQtDeliverSlatedImagesNode(); { TreeMap<String, String> subst = new TreeMap<String, String>(); subst.put(readQtDeliverableImagesNodeName, "Images"); subst.put(pFormatNodeName, "FinalFormat"); NukeSubstCompStage stage = new NukeSubstCompStage( stageInfo, pContext, pClient, qtDeliverSlatedImagesNodeName, pFrameRange, 4, "jpg", "Append & Process", qtDeliverSlateNukeNodeName, subst); addTaskAnnotation(stage, NodePurpose.Prepare); stage.build(); } String qtDeliverSlatedMovieNodeName = pDeliverNamer.getQtDeliverSlatedMovieNode(); { DjvUnixQtStage stage = new DjvUnixQtStage( stageInfo, pContext, pClient, qtDeliverSlatedMovieNodeName, qtDeliverSlatedImagesNodeName, "24"); addTaskAnnotation(stage, NodePurpose.Prepare); stage.build(); } String qtDeliverableNodeName = pDeliverNamer.getQtDeliverableNode(); { QtEncodeStage stage = new QtEncodeStage( stageInfo, pContext, pClient, qtDeliverableNodeName, qtDeliverSlatedMovieNodeName, pCodecNodeName); addTaskAnnotation(stage, NodePurpose.Deliver); stage.build(); addToQueueList(qtDeliverableNodeName); addToCheckInList(qtDeliverableNodeName); } } }