swift-java-coder/Sources/JNIArgumentProtocol.swift

103 lines
1.6 KiB
Swift

//
// JNIArgumentProtocol.swift
// SmartMailCoreBridge
//
// Created by Andrew on 11/14/17.
//
import Foundation
import java_swift
public protocol JNIArgumentProtocol {
func value() -> jvalue
}
public struct jnull: JNIArgumentProtocol {
public func value() -> jvalue {
return jvalue()
}
}
extension jint: JNIArgumentProtocol {
public func value() -> jvalue {
return jvalue(i: self)
}
}
extension jbyte: JNIArgumentProtocol {
public func value() -> jvalue {
return jvalue(b: self)
}
}
extension jchar: JNIArgumentProtocol {
public func value() -> jvalue {
return jvalue(c: self)
}
}
extension jshort: JNIArgumentProtocol {
public func value() -> jvalue {
return jvalue(s: self)
}
}
extension jlong: JNIArgumentProtocol {
public func value() -> jvalue {
return jvalue(j: self)
}
}
extension jboolean: JNIArgumentProtocol {
public func value() -> jvalue {
return jvalue(z: self)
}
}
extension jfloat: JNIArgumentProtocol {
public func value() -> jvalue {
return jvalue(f: self)
}
}
extension jdouble: JNIArgumentProtocol {
public func value() -> jvalue {
return jvalue(d: self)
}
}
extension jobject: JNIArgumentProtocol {
public func value() -> jvalue {
return jvalue(l: self)
}
}
// For backward compatibility
extension jvalue: JNIArgumentProtocol {
public func value() -> jvalue {
return self
}
}