def getAttributeMetadataSync()

in app/helpers/MetadataHelper.scala [48:65]


  def getAttributeMetadataSync(obj:MxsObject) = {
    val view = obj.getAttributeView

    view.iterator.asScala.foldLeft(MxsMetadata.empty){ (acc, elem)=>{
      val v = elem.getValue.asInstanceOf[Any]
      v match {
        case boolValue: Boolean => acc.copy(boolValues = acc.boolValues ++ Map(elem.getKey->boolValue))
        case intValue:Int => acc.copy(intValues = acc.intValues ++ Map(elem.getKey -> intValue))
        case longValue:Long => acc.copy(longValues = acc.longValues ++ Map(elem.getKey -> longValue))
        case floatValue:java.lang.Float =>  acc.copy(floatValues = acc.floatValues ++ Map(elem.getKey->Float2float(floatValue)))
        case byteBuffer:ByteBuffer => acc.copy(stringValues = acc.stringValues ++ Map(elem.getKey -> Hex.encodeHexString(byteBuffer.array())))
        case stringValue:String => acc.copy(stringValues = acc.stringValues ++ Map(elem.getKey -> stringValue))
        case _=>
          logger.warn(s"Could not get metadata value for ${elem.getKey} on ${obj.getId}, type ${elem.getValue.getClass.toString} not recognised")
          acc
      }
    }}
  }