Play2フレームワークのSecureSocialプラグインの永続性レイヤーを作成しています。https://github.com/play-modules/modules.playframework.org/blob/master/app/models/ss/MPOOAuth2Info.javaで例を見つけました:
package models.ss;
import models.AbstractModel;
import securesocial.core.java.OAuth2Info;
import javax.persistence.Entity;
@Entity
public class MPOOAuth2Info extends AbstractModel
{
public String accessToken;
public String tokenType;
public Integer expiresIn;
public String refreshToken;
public MPOOAuth2Info()
{
// no-op
}
public MPOOAuth2Info(OAuth2Info oAuth2Info)
{
this.accessToken = oAuth2Info.accessToken;
this.tokenType = oAuth2Info.tokenType;
this.expiresIn = oAuth2Info.expiresIn;
this.refreshToken = oAuth2Info.refreshToken;
}
public OAuth2Info toOAuth2Info()
{
OAuth2Info oAuth2Info = new OAuth2Info();
oAuth2Info.accessToken = this.accessToken;
oAuth2Info.tokenType = this.tokenType;
oAuth2Info.expiresIn = this.expiresIn;
oAuth2Info.refreshToken = this.refreshToken;
return oAuth2Info;
}
}
しかし、APIが変更されたため、使用できませんsecuresocial.core.java.OAuth2Info
。SecureSocialはScalaによって作成され、このクラスはJavaフロントエンドでした。そこで、Scalaを直接使用することにしました。
case class OAuth2Info(accessToken: String, tokenType: Option[String] = None,
expiresIn: Option[Int] = None, refreshToken: Option[String] = None)
私の結果:
package models.security.securesocial;
import models.AbstractModel;
import scala.Option;
import securesocial.core.*;
import javax.persistence.Entity;
/**
* Persistence wrapper for SecureSocial's {@link } class.
*
* @author Steve Chaloner (steve@objectify.be)
*/
@Entity
public class MPOOAuth2Info extends AbstractModel
{
public String accessToken;
public String tokenType;
public Integer expiresIn;
public String refreshToken;
public MPOOAuth2Info(){
// no-op
}
public MPOOAuth2Info(OAuth2Info oAuth2Info){
this.accessToken = oAuth2Info.accessToken();
this.tokenType = oAuth2Info.tokenType().get();
this.expiresIn = scala.Int.unbox(oAuth2Info.expiresIn().get());
this.refreshToken = oAuth2Info.refreshToken().get();
}
public OAuth2Info toOAuth2Info(){
return new OAuth2Info(accessToken, Option.apply(tokenType), Option.apply(SOME_TRANSFORMATION(expiresIn)), Option.apply(refreshToken));
}
}
scala.Int
しかし、型への/型からの変換に問題がありjava.lang.Integer
ます。に変換するscala.Int
には、java.lang.Integer
を使用しscala.Int.unbox()
ました。接続方法ですか?そして、私は疑似コードを入力したコードで:に変換java.lang.Integer
する方法がわかりません。このSOME_TRANSFORMATIONの正しい実装は何ですか?scala.Int
SOME_TRANSFORMATION()
ありがとうございました