protected def buildMetaForXML()

in online_nearline/src/main/scala/VidispineMessageProcessor.scala [481:520]


  protected def buildMetaForXML(vault:Vault, rec:NearlineRecord, itemId:String, nowTime:ZonedDateTime=ZonedDateTime.now()) = {
    def makeBaseMeta(basePath:Path) = {
      val filePath = basePath.resolve(s"$itemId.XML")
      MxsMetadata(
        stringValues = Map(
          "MXFS_FILENAME_UPPER" -> filePath.toString.toUpperCase,
          "MXFS_FILENAME"-> s"$itemId.xml",
          "MXFS_PATH"-> filePath.toString,
          "MXFS_MIMETYPE"-> "application/xml",
          "MXFS_DESCRIPTION"->s"Vidispine metadata for $itemId",
          "MXFS_PARENTOID"->"",
          "MXFS_FILEEXT"->".xml",
          "ATT_ORIGINAL_OID"->rec.objectId
        ),
        boolValues = Map(
          "MXFS_INTRASH"->false,
        ),
        longValues = Map(
          "MXFS_MODIFICATION_TIME"->nowTime.toInstant.toEpochMilli,
          "MXFS_CREATION_TIME"->nowTime.toInstant.toEpochMilli,
          "MXFS_ACCESS_TIME"->nowTime.toInstant.toEpochMilli,
        ),
        intValues = Map(
          "MXFS_CREATIONDAY"->nowTime.getDayOfMonth,
          "MXFS_COMPATIBLE"->1,
          "MXFS_CREATIONMONTH"->nowTime.getMonthValue,
          "MXFS_CREATIONYEAR"->nowTime.getYear,
          "MXFS_CATEGORY"->4, //"document"
        )
      )
    }

    getOriginalMediaMeta(vault, rec.objectId).map(maybeMeta=>{
      for {
        updatedMeta <- maybeMeta.map(_.copy(itemType = CustomMXSMetadata.TYPE_META))
        baseMeta <- Some(makeBaseMeta(Paths.get(rec.originalFilePath).getParent))
        mxsMeta <- Some(updatedMeta.toAttributes(baseMeta))
      } yield mxsMeta
    })
  }