本文整理汇总了Scala中org.joda.time.LocalDateTime类的典型用法代码示例。如果您正苦于以下问题:Scala LocalDateTime类的具体用法?Scala LocalDateTime怎么用?Scala LocalDateTime使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了LocalDateTime类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Scala代码示例。
示例1: AuthenticatorQueries
//设置package包名称以及导入依赖的类
package models.queries
import com.mohiva.play.silhouette.api.LoginInfo
import com.mohiva.play.silhouette.impl.authenticators.CookieAuthenticator
import jdub.async.{ Statement, Row, FlatSingleRowQuery }
import jdub.async.queries.BaseQueries
import org.joda.time.LocalDateTime
object AuthenticatorQueries extends BaseQueries[CookieAuthenticator] {
override protected val tableName = "session_info"
override protected val columns = Seq("id", "provider", "key", "last_used", "expiration", "fingerprint", "created")
override protected val searchColumns = Seq("id::text", "key")
val insert = Insert
val getById = GetById
val removeById = RemoveById
case class FindSessionInfoByLoginInfo(l: LoginInfo) extends FlatSingleRowQuery[CookieAuthenticator] {
override val sql = getSql(Some("provider = ? and key = ?"))
override val values = Seq(l.providerID, l.providerKey)
override def flatMap(row: Row) = Some(fromRow(row))
}
case class UpdateAuthenticator(ca: CookieAuthenticator) extends Statement {
override val sql = updateSql(Seq("provider", "key", "last_used", "expiration", "fingerprint"))
override val values = Seq(
ca.loginInfo.providerID,
ca.loginInfo.providerKey,
ca.lastUsedDateTime.toLocalDateTime,
ca.expirationDateTime.toLocalDateTime,
ca.fingerprint,
ca.id
)
}
override protected def fromRow(row: Row) = {
val id = row.as[String]("id")
val provider = row.as[String]("provider")
val key = row.as[String]("key")
val lastUsed = row.as[LocalDateTime]("last_used").toDateTime
val expiration = row.as[LocalDateTime]("expiration").toDateTime
val idleTimeout = None
val cookieMaxAge = None
val fingerprint = row.asOpt[String]("fingerprint")
CookieAuthenticator(id, LoginInfo(provider, key), lastUsed, expiration, idleTimeout, cookieMaxAge, fingerprint)
}
override protected def toDataSeq(ca: CookieAuthenticator) = Seq(
ca.id,
ca.loginInfo.providerID,
ca.loginInfo.providerKey,
ca.lastUsedDateTime.toLocalDateTime,
ca.expirationDateTime.toLocalDateTime,
ca.fingerprint,
new LocalDateTime()
)
}
开发者ID:laurinka,项目名称:golfmit,代码行数:58,代码来源:AuthenticatorQueries.scala
示例2: OAuth1InfoQueries
//设置package包名称以及导入依赖的类
package models.queries
import com.mohiva.play.silhouette.api.LoginInfo
import com.mohiva.play.silhouette.impl.providers.OAuth1Info
import jdub.async.{ Row, Statement }
import jdub.async.queries.BaseQueries
import org.joda.time.LocalDateTime
object OAuth1InfoQueries extends BaseQueries[OAuth1Info] {
override protected val tableName = "oauth1_info"
override protected val columns = Seq("provider", "key", "token", "secret", "created")
override protected val idColumns = Seq("provider", "key")
override protected val searchColumns = Seq("key", "token")
val getById = GetById
val removeById = RemoveById
case class CreateOAuth1Info(l: LoginInfo, o: OAuth1Info) extends Statement {
override val sql = insertSql
override val values = Seq(l.providerID, l.providerKey) ++ toDataSeq(o)
}
case class UpdateOAuth1Info(l: LoginInfo, o: OAuth1Info) extends Statement {
override val sql = s"update $tableName set token = ?, secret = ?, created = ? where provider = ? and key = ?"
override val values = toDataSeq(o) ++ Seq(l.providerID, l.providerKey)
}
override protected def fromRow(row: Row) = {
val token = row.as[String]("token")
val secret = row.as[String]("secret")
OAuth1Info(token, secret)
}
override protected def toDataSeq(o: OAuth1Info) = Seq(o.token, o.secret, new LocalDateTime())
}
开发者ID:laurinka,项目名称:golfmit,代码行数:36,代码来源:OAuth1InfoQueries.scala
示例3: ProfileQueries
//设置package包名称以及导入依赖的类
package models.queries
import java.util.UUID
import com.mohiva.play.silhouette.api.LoginInfo
import com.mohiva.play.silhouette.impl.providers.CommonSocialProfile
import jdub.async.queries.BaseQueries
import jdub.async.{ Query, Row, FlatSingleRowQuery }
import org.joda.time.LocalDateTime
object ProfileQueries extends BaseQueries[CommonSocialProfile] {
override protected val tableName = "user_profiles"
override protected val columns = Seq("provider", "key", "email", "first_name", "last_name", "full_name", "avatar_url", "created")
override protected val searchColumns = Seq("key", "email", "first_name", "last_name", "full_name")
val insert = Insert
val remove = RemoveById
case class FindProfile(provider: String, key: String) extends FlatSingleRowQuery[CommonSocialProfile] {
override val sql = getSql(Some("provider = ? and key = ?"))
override val values = Seq(provider, key)
override def flatMap(row: Row) = Some(fromRow(row))
}
case class FindProfilesByUser(id: UUID) extends Query[List[CommonSocialProfile]] {
override val sql = s"select ${columns.mkString(", ")} from $tableName p " +
"where (p.provider || ':' || p.key) in (select unnest(profiles) from users where users.id = ?)"
override val values = Seq(id)
override def reduce(rows: Iterator[Row]) = rows.map(fromRow).toList
}
override protected def fromRow(row: Row) = {
val loginInfo = LoginInfo(
providerID = row.as[String]("provider"),
providerKey = row.as[String]("key")
)
val firstName = row.asOpt[String]("first_name")
val lastName = row.asOpt[String]("last_name")
val fullName = row.asOpt[String]("full_name")
val email = row.asOpt[String]("email")
val avatarUrl = row.asOpt[String]("avatar_url")
CommonSocialProfile(loginInfo, firstName, lastName, fullName, email, avatarUrl)
}
override protected def toDataSeq(p: CommonSocialProfile) = Seq(
p.loginInfo.providerID, p.loginInfo.providerKey, p.email, p.firstName, p.lastName, p.fullName, p.avatarURL, new LocalDateTime()
)
}
开发者ID:laurinka,项目名称:golfmit,代码行数:50,代码来源:ProfileQueries.scala
示例4: OpenIdInfoQueries
//设置package包名称以及导入依赖的类
package models.queries
import com.mohiva.play.silhouette.api.LoginInfo
import com.mohiva.play.silhouette.impl.providers.OpenIDInfo
import jdub.async.{ Row, Statement }
import jdub.async.queries.BaseQueries
import org.joda.time.LocalDateTime
import play.api.libs.json.{ JsValue, Json }
object OpenIdInfoQueries extends BaseQueries[OpenIDInfo] {
override protected val tableName = "openid_info"
override protected val columns = Seq("provider", "key", "id", "attributes", "created")
override protected val idColumns = Seq("provider", "key")
override protected val searchColumns = Seq("key")
val getById = GetById
val removeById = RemoveById
case class CreateOpenIdInfo(l: LoginInfo, o: OpenIDInfo) extends Statement {
override val sql = insertSql
override val values = Seq(l.providerID, l.providerKey) ++ toDataSeq(o)
}
case class UpdateOpenIdInfo(l: LoginInfo, o: OpenIDInfo) extends Statement {
override val sql = s"update $tableName set id = ?, attributes = ?, created = ? where provider = ? and key = ?"
val attributes = Json.prettyPrint(Json.toJson(o.attributes))
override val values = toDataSeq(o) ++ Seq(l.providerID, l.providerKey)
}
override protected def fromRow(row: Row) = {
val id = row.as[String]("id")
val attributesString = row.as[String]("attributes")
val attributes = Json.parse(attributesString).as[Map[String, JsValue]].map(x => x._1 -> x._2.as[String])
OpenIDInfo(id, attributes)
}
override protected def toDataSeq(o: OpenIDInfo) = {
val attributes = Json.prettyPrint(Json.toJson(o.attributes))
Seq(o.id, attributes, new LocalDateTime())
}
}
开发者ID:laurinka,项目名称:golfmit,代码行数:42,代码来源:OpenIdInfoQueries.scala
示例5: PasswordInfoQueries
//设置package包名称以及导入依赖的类
package models.queries
import com.mohiva.play.silhouette.api.LoginInfo
import com.mohiva.play.silhouette.api.util.PasswordInfo
import jdub.async.{ Row, Statement }
import jdub.async.queries.BaseQueries
import org.joda.time.LocalDateTime
object PasswordInfoQueries extends BaseQueries[PasswordInfo] {
override protected val tableName = "password_info"
override protected val columns = Seq("provider", "key", "hasher", "password", "salt", "created")
override protected def idColumns = Seq("provider", "key")
override protected val searchColumns = Seq("key")
val getById = GetById
val removeById = RemoveById
case class CreatePasswordInfo(l: LoginInfo, p: PasswordInfo) extends Statement {
override val sql = insertSql
override val values = Seq(l.providerID, l.providerKey) ++ toDataSeq(p)
}
case class UpdatePasswordInfo(l: LoginInfo, p: PasswordInfo) extends Statement {
override val sql = s"update $tableName set hasher = ?, password = ?, salt = ?, created = ? where provider = ? and key = ?"
override val values = toDataSeq(p) ++ Seq(l.providerID, l.providerKey)
}
override protected def fromRow(row: Row) = PasswordInfo(
hasher = row.as[String]("hasher"),
password = row.as[String]("password"),
salt = row.asOpt[String]("salt")
)
override protected def toDataSeq(p: PasswordInfo) = Seq(p.hasher, p.password, p.salt, new LocalDateTime())
}
开发者ID:laurinka,项目名称:golfmit,代码行数:36,代码来源:PasswordInfoQueries.scala
示例6: OAuth2InfoQueries
//设置package包名称以及导入依赖的类
package models.queries
import com.mohiva.play.silhouette.api.LoginInfo
import com.mohiva.play.silhouette.impl.providers.OAuth2Info
import jdub.async.{ Row, Statement }
import jdub.async.queries.BaseQueries
import org.joda.time.LocalDateTime
import play.api.libs.json.{ JsValue, Json }
object OAuth2InfoQueries extends BaseQueries[OAuth2Info] {
override protected val tableName = "oauth2_info"
override protected val columns = Seq("provider", "key", "access_token", "token_type", "expires_in", "refresh_token", "params", "created")
override protected val idColumns = Seq("provider", "key")
override protected val searchColumns = Seq("key", "access_token")
val getById = GetById
val removeById = RemoveById
case class CreateOAuth2Info(l: LoginInfo, o: OAuth2Info) extends Statement {
override val sql = insertSql
override val values = Seq(l.providerID, l.providerKey) ++ toDataSeq(o)
}
case class UpdateOAuth2Info(l: LoginInfo, o: OAuth2Info) extends Statement {
override val sql = {
s"update $tableName set access_token = ?, token_type = ?, expires_in = ?, refresh_token = ?, params = ?, created = ? where provider = ? and key = ?"
}
override val values = toDataSeq(o) ++ Seq(l.providerID, l.providerKey)
}
override protected def fromRow(row: Row) = {
val params = row.asOpt[String]("params").map { p =>
Json.parse(p).as[Map[String, JsValue]].map(x => x._1 -> x._2.as[String])
}
OAuth2Info(
accessToken = row.as[String]("access_token"),
tokenType = row.asOpt[String]("token_type"),
expiresIn = row.asOpt[Int]("expires_in"),
refreshToken = row.asOpt[String]("refresh_token"),
params = params
)
}
override protected def toDataSeq(o: OAuth2Info) = {
val params = o.params.map(p => Json.prettyPrint(Json.toJson(p)))
Seq(o.accessToken, o.tokenType, o.expiresIn, o.refreshToken, params, new LocalDateTime())
}
}
开发者ID:laurinka,项目名称:golfmit,代码行数:49,代码来源:OAuth2InfoQueries.scala
示例7: User
//设置package包名称以及导入依赖的类
package models.user
import java.util.UUID
import com.mohiva.play.silhouette.api.{ Identity, LoginInfo }
import org.joda.time.LocalDateTime
case class User(
id: UUID,
username: Option[String],
profiles: Seq[LoginInfo],
roles: Set[Role] = Set(Role.User),
created: LocalDateTime
) extends Identity {
def isGuest = profiles.isEmpty
def isAdmin = roles.contains(models.user.Role.Admin)
}
开发者ID:laurinka,项目名称:golfmit,代码行数:18,代码来源:User.scala
示例8: BaseController
//设置package包名称以及导入依赖的类
package controllers
import java.util.UUID
import org.joda.time.LocalDateTime
import play.api.i18n.I18nSupport
import services.user.AuthenticationEnvironment
import com.mohiva.play.silhouette.api._
import com.mohiva.play.silhouette.impl.authenticators.CookieAuthenticator
import models.user.{ Role, User }
import play.api.libs.concurrent.Execution.Implicits.defaultContext
import play.api.mvc.{ AnyContent, Result }
import scala.concurrent.Future
abstract class BaseController() extends Silhouette[User, CookieAuthenticator] with I18nSupport {
def env: AuthenticationEnvironment
def withAdminSession(block: (SecuredRequest[AnyContent]) => Future[Result]) = SecuredAction.async { implicit request =>
if (request.identity.roles.contains(Role.Admin)) {
block(request)
} else {
Future.successful(NotFound("404 Not Found"))
}
}
def withSession(block: (SecuredRequest[AnyContent]) => Future[Result]) = UserAwareAction.async { implicit request =>
val response = request.identity match {
case Some(user) =>
val secured = SecuredRequest(user, request.authenticator.getOrElse(throw new IllegalStateException()), request)
block(secured).map { r =>
r
}
case None =>
val user = User(
id = UUID.randomUUID(),
username = None,
profiles = Nil,
created = new LocalDateTime()
)
for {
user <- env.userService.save(user)
authenticator <- env.authenticatorService.create(LoginInfo("anonymous", user.id.toString))
value <- env.authenticatorService.init(authenticator)
result <- block(SecuredRequest(user, authenticator, request))
authedResponse <- env.authenticatorService.embed(value, result)
} yield {
env.eventBus.publish(SignUpEvent(user, request, request2Messages))
env.eventBus.publish(LoginEvent(user, request, request2Messages))
authedResponse
}
}
response
}
}
开发者ID:laurinka,项目名称:golfmit,代码行数:57,代码来源:BaseController.scala
示例9: User
//设置package包名称以及导入依赖的类
package models
import org.joda.time.LocalDateTime
import org.mindrot.jbcrypt.BCrypt
class User private (
val id: Long,
val name: String,
val email: String,
val passwordDigest: String,
val createdAt: LocalDateTime,
val updatedAt: LocalDateTime
) {
def verifyPassword(password: String): Boolean = {
BCrypt.checkpw(password, passwordDigest)
}
}
object User {
def apply(
id: Long,
name: String,
email: String,
passwordDigest: String,
createdAt: LocalDateTime = LocalDateTime.now,
updatedAt: LocalDateTime = LocalDateTime.now
): User = {
val validName = name match {
case n if n.length > 50 => throw new Exception
case _ => name
}
val validEmail = email match {
case e if e.length > 255 => throw new Exception
case e if !e.matches("""\A[\w+\-.][email protected][a-z\d\-.]+\.[a-z]+\z""") => throw new Exception
case _ => email
}
val validPass = passwordDigest match {
case pass if pass.length < 6 => throw new Exception
case _ => passwordDigest
}
new User(id = id, name = validName, email = validEmail, passwordDigest = validPass, createdAt = createdAt, updatedAt = updatedAt)
}
}
开发者ID:benevolent0505,项目名称:My-PlayFramework-Sample,代码行数:47,代码来源:User.scala
示例10: ChargeSessionsService
//设置package包名称以及导入依赖的类
package services.business
import models.CurrentTariff
import org.joda.time.{Hours, LocalDateTime}
import org.joda.time.format.ISODateTimeFormat
object ChargeSessionsService {
def calculateTotalFee(transaction: Map[String,AnyRef], tariff: CurrentTariff) = {
val volume: Double = transaction.get("volume") match {
case Some(v) if v.isInstanceOf[Double] => v.asInstanceOf[Double]
case Some(v) if v.isInstanceOf[String] => v.asInstanceOf[String].toDouble
case _ => 0d
}
val startTime = parseDate(transaction, "startTime")
val endTime = parseDate(transaction, "endTime")
val numHours = Hours.hoursBetween(startTime, endTime).getHours
tariff.startFee + (numHours * tariff.hourlyFee) + (volume * tariff.feePerKwh)
}
private def parseDate(transaction: Map[String,AnyRef], field: String) = {
transaction.get(field).asInstanceOf[Option[String]] match {
case Some(dateTime) => ISODateTimeFormat.dateTimeParser().parseLocalDateTime(dateTime)
case _ => new LocalDateTime()
}
}
}
开发者ID:jeroenr,项目名称:reactive-mongo-demo,代码行数:30,代码来源:ChargeSessionsService.scala
示例11: PayrollPeriod
//设置package包名称以及导入依赖的类
package uk.gov.bis.levyApiMock.data.levy
import org.joda.time.format.DateTimeFormat
import org.joda.time.{LocalDate, LocalDateTime}
import play.api.libs.json._
case class PayrollPeriod(year: String, month: Int)
object PayrollPeriod {
implicit val formats = Json.format[PayrollPeriod]
}
case class LevyDeclaration(id: Long,
submissionTime: LocalDateTime,
dateCeased: Option[LocalDate] = None,
inactiveFrom: Option[LocalDate] = None,
inactiveTo: Option[LocalDate] = None,
payrollPeriod: Option[PayrollPeriod] = None,
levyDueYTD: Option[BigDecimal] = None,
levyAllowanceForFullYear: Option[BigDecimal] = None,
noPaymentForPeriod: Option[Boolean] = None)
object LevyDeclaration {
implicit val ldtFormats = new Format[LocalDateTime] {
val fmt = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSS")
override def reads(json: JsValue): JsResult[LocalDateTime] = implicitly[Reads[JsString]].reads(json).map { js =>
fmt.parseDateTime(js.value).toLocalDateTime
}
override def writes(o: LocalDateTime): JsValue = JsString(fmt.print(o))
}
implicit val formats = Json.format[LevyDeclaration]
}
case class LevyDeclarationResponse(empref: String, declarations: Seq[LevyDeclaration])
object LevyDeclarationResponse {
implicit val formats = Json.format[LevyDeclarationResponse]
}
开发者ID:UKGovernmentBEIS,项目名称:das-alpha-hmrc-api-mock,代码行数:43,代码来源:LevyDeclarationResponse.scala
示例12: JsonValueImplicits
//设置package包名称以及导入依赖的类
package core.database
import org.mongodb.scala.bson.collection.immutable.Document
import play.api.libs.json.JsValue
import play.api.libs.json.Json
import play.api.libs.json.Writes
import org.joda.time.LocalDateTime
import play.api.libs.json.JsString
import org.joda.time.format.DateTimeFormat
object JsonValueImplicits {
implicit def jsValueToString(jsValue: JsValue): String = {
jsValue.toString()
}
implicit def documentToJsValue(document: Document): JsValue = {
Json.parse(document.toJson())
}
implicit val jodaDateWrites: Writes[LocalDateTime] = new Writes[LocalDateTime] {
def writes(date: LocalDateTime): JsValue = {
val fmt = DateTimeFormat.forPattern("HH:mm:ss");
JsString(date.toString(fmt))
}
}
implicit def localDateTimeToJsValue(localDateTime:LocalDateTime): JsValue = {
jodaDateWrites.writes(localDateTime)
}
}
开发者ID:Vladislav-Zolotaryov,项目名称:EchoCave,代码行数:33,代码来源:JsonValueImplicits.scala
示例13: ReactiveMongoFormats
//设置package包名称以及导入依赖的类
package util
import org.joda.time.{DateTime, DateTimeZone, LocalDate, LocalDateTime}
import play.api.libs.json._
import reactivemongo.bson.BSONObjectID
object ReactiveMongoFormats extends ReactiveMongoFormats
trait ReactiveMongoFormats {
implicit val localDateRead: Reads[LocalDate] =
(__ \ "$date").read[Long].map { date => new LocalDate(date, DateTimeZone.UTC) }
implicit val localDateWrite: Writes[LocalDate] = new Writes[LocalDate] {
def writes(localDate: LocalDate): JsValue = Json.obj(
"$date" -> localDate.toDateTimeAtStartOfDay(DateTimeZone.UTC).getMillis
)
}
implicit val localDateTimeRead: Reads[LocalDateTime] =
(__ \ "$date").read[Long].map { dateTime => new LocalDateTime(dateTime, DateTimeZone.UTC) }
implicit val localDateTimeWrite: Writes[LocalDateTime] = new Writes[LocalDateTime] {
def writes(dateTime: LocalDateTime): JsValue = JsNumber(
dateTime.toDateTime(DateTimeZone.UTC).getMillis
)
}
implicit val dateTimeRead: Reads[DateTime] =
(__ \ "$date").read[Long].map { dateTime =>
new DateTime(dateTime, DateTimeZone.UTC)
}
implicit val dateTimeWrite: Writes[DateTime] = new Writes[DateTime] {
def writes(dateTime: DateTime): JsValue = Json.obj(
"$date" -> dateTime.getMillis
)
}
implicit val objectIdRead: Reads[BSONObjectID] =
(__ \ "$oid").read[String].map { oid =>
BSONObjectID(oid)
}
implicit val objectIdWrite: Writes[BSONObjectID] = new Writes[BSONObjectID] {
def writes(objectId: BSONObjectID): JsValue = JsString(
objectId.stringify
)
}
implicit val objectIdFormats = Format(objectIdRead, objectIdWrite)
implicit val dateTimeFormats = Format(dateTimeRead, dateTimeWrite)
implicit val localDateFormats = Format(localDateRead, localDateWrite)
implicit val localDateTimeFormats = Format(localDateTimeRead, localDateTimeWrite)
}
开发者ID:dturbay,项目名称:memo-rest,代码行数:61,代码来源:ReactiveMongoFormats.scala
示例14: MemoController
//设置package包名称以及导入依赖的类
package controllers
import javax.inject.{Inject, Singleton}
import model.Memo
import org.joda.time.LocalDateTime
import play.api.libs.json.Json
import play.api.mvc.{BodyParsers, Action, Controller}
import play.modules.reactivemongo.{MongoController, ReactiveMongoApi, ReactiveMongoComponents}
import reactivemongo.bson.BSONObjectID
import scala.concurrent.{Future, ExecutionContext}
@Singleton
class MemoController @Inject()(val reactiveMongoApi: ReactiveMongoApi)
(implicit ec: ExecutionContext)
extends Controller with MongoController with ReactiveMongoComponents {
def memoRepo = new backend.MemoMongoRepo(reactiveMongoApi)
//import reactivemongo.play.json._
import util.ReactiveMongoFormats._
implicit val memoFormat = Json.format[Memo]
def list = Action.async {
val memos: Future[List[Memo]] = memoRepo.find()
memos.map(list => Ok(Json.toJson(list)))
}
def post = Action.async(BodyParsers.parse.json) { implicit request =>
val memo: Memo = Memo(Some(BSONObjectID.generate()),
(request.body \ "text").as[String],
new LocalDateTime((request.body \ "date").as[Long]))
memoRepo.save(memo).map(_ => Created(memo._id.get.stringify))
}
}
开发者ID:dturbay,项目名称:memo-rest,代码行数:37,代码来源:MemoController.scala
示例15: CarSpeedGenerator
//设置package包名称以及导入依赖的类
package actors
import javax.inject.Inject
import akka.actor._
import org.joda.time.LocalDateTime
import scala.util.Random
import services._
object CarSpeedGenerator {
case object Update
}
class CarSpeedGenerator @Inject() (service: DailyCarSpeedService) extends Actor {
import CarSpeedGenerator._
import services.DailyCarSpeedService._
def receive: Receive = {
case Update =>
val speed = Random.nextInt(200)
val date = new LocalDateTime()
service.save(Request(date, speed))
}
}
开发者ID:ezzahraoui,项目名称:play-reactivemongo-time-series,代码行数:24,代码来源:CarSpeedGenerator.scala
示例16: JodaTimeConverters
//设置package包名称以及导入依赖的类
package cjp.catalogue.mongo
import com.novus.salat.Context
import com.novus.salat.transformers.CustomTransformer
import org.bson.{BSON, Transformer}
import org.joda.time.{DateTime, LocalDateTime}
object JodaTimeConverters {
private val dateTimeClass = classOf[DateTime]
private val localDateTimeClass = classOf[LocalDateTime]
private val bsonEncoder = new Transformer {
def transform(o: AnyRef): AnyRef = o match {
case d: DateTime => d.toDate
case l: LocalDateTime => l.toString
case _ => o
}
}
private val localDateTimeTransformer = new CustomTransformer[LocalDateTime, Object]() {
override def serialize(a: LocalDateTime): String = a.toString
override def deserialize(b: Object): LocalDateTime = b match {
case s: String => new LocalDateTime(s)
case d: java.util.Date => new LocalDateTime(d) // For backward compatibility only - not a good idea
}
}
private val dateTimeTransformer = new CustomTransformer[DateTime, java.util.Date]() {
override def serialize(a: DateTime): java.util.Date = a.toDate
override def deserialize(b: java.util.Date): DateTime = new DateTime(b)
}
def register(ctx: Context): Unit = {
BSON.addEncodingHook(dateTimeClass, bsonEncoder)
BSON.addEncodingHook(localDateTimeClass, bsonEncoder)
ctx.registerCustomTransformer(dateTimeTransformer)
ctx.registerCustomTransformer(localDateTimeTransformer)
}
}
开发者ID:UKHomeOffice,项目名称:product-catalogue,代码行数:42,代码来源:JodaTimeConverters.scala
示例17: IssueComment
//设置package包名称以及导入依赖的类
package gh2011c.models
import net.liftweb.json.JsonAST.JValue
import org.joda.time.LocalDateTime
case class IssueComment(created_at: LocalDateTime, body: String, updated_at: LocalDateTime, url: String, id: Long,
user: IssueCommentUser)
object IssueComment
{
def apply(json: JValue): Option[IssueComment] =
{
val n2ldt = gh3.node2LocalDateTime(json)(_)
val n2s = gh3.node2String(json)(_)
val n2l = gh3.node2Long(json)(_)
val created_at = n2ldt("created_at")
val body = n2s("body")
val updated_at = n2ldt("updated_at")
val url = n2s("url")
val id = n2l("id")
val user = IssueCommentUser(json \ "user")
val params = Seq(created_at, body, updated_at, url, id, user)
if(params.forall(_.isDefined))
Some(IssueComment(created_at.get, body.get, updated_at.get, url.get, id.get, user.get))
else None
}
}
开发者ID:mgoeminne,项目名称:github_etl,代码行数:31,代码来源:IssueComment.scala
示例18: Issue
//设置package包名称以及导入依赖的类
package gh2011c.models
import net.liftweb.json.JsonAST.{JValue, JArray}
import org.joda.time.LocalDateTime
case class Issue(number: Long, created_at: LocalDateTime, pull_request: PullRequest, body: String, comments: Long,
title: String, updated_at: LocalDateTime, url: String, id: Long, assignee: Assignee,
milestone: Option[String], closed_at: Option[LocalDateTime], user: IssueUser, html_url: String,
labels: Seq[String], state: String)
object Issue
{
def apply(json: JValue): Option[Issue] =
{
val n2s = gh3.node2String(json)(_)
val n2os = gh3.node2OptionString(json)(_)
val n2l = gh3.node2Long(json)(_)
val n2ldt = gh3.node2LocalDateTime(json)(_)
val n2oldt = gh3.node2OptionLocalDateTime(json)(_)
val number = n2l("number")
val created_at = n2ldt("created_at")
val pull_request = PullRequest(json \ "pull_request")
val body = n2s("body")
val comments = n2l("comments")
val title = n2s("title")
val updated_at = n2ldt("updated_at")
val url = n2s("url")
val id = n2l("id")
val assignee = Assignee(json \ "assignee")
val milestone = n2os("milestone")
val closed_at = n2oldt("closed_at")
val user = IssueUser(json \ "user")
val html_url = n2s("html_url")
val labels = (json \ "labels") match {
case JArray(x) => x.map(e => gh3.directNode2String(e).get)
case _ => Seq()
}
val state = n2s("state")
val params = Seq(number, created_at, pull_request, body, comments, title, updated_at, url, id, assignee,
milestone, closed_at, user, html_url, state)
if(params.forall(_.isDefined))
Some(Issue( number.get, created_at.get, pull_request.get, body.get, comments.get, title.get, updated_at.get,
url.get, id.get, assignee.get, milestone.get, closed_at.get, user.get, html_url.get, labels, state.get)
)
else None
}
}
开发者ID:mgoeminne,项目名称:github_etl,代码行数:51,代码来源:Issue.scala
示例19: EventBody
//设置package包名称以及导入依赖的类
package gh2013.models
import gh2013.events.ActorAttributes
import net.liftweb.json.JsonAST.JValue
import org.joda.time.LocalDateTime
case class EventBody(actor: String, public: Boolean, url: String, repository: Repository,
actor_attributes: ActorAttributes, created_at: LocalDateTime)
object EventBody
{
def apply(json: JValue): Option[EventBody] =
{
val n2s = gh3.node2String(json)(_)
val n2b = gh3.node2Boolean(json)(_)
val n2ldt = gh3.node2LocalDateTime(json)(_)
val actor = n2s("actor")
val public = n2b("public")
val url = n2s("url")
val repository = Repository(json \ "repository")
val actor_attributes = ActorAttributes(json \ "actor_attributes")
val created_at = n2ldt("created_at")
val params = Seq(actor, public, url, repository, actor_attributes, created_at)
if(params.forall(_.isDefined))
Some(EventBody(actor.get, public.get, url.get, repository.get, actor_attributes.get, created_at.get))
else None
}
}
开发者ID:mgoeminne,项目名称:github_etl,代码行数:33,代码来源:EventBody.scala
示例20: EventBodyWithoutRepository
//设置package包名称以及导入依赖的类
package gh2013.models
import gh2013.events.ActorAttributes
import net.liftweb.json.JsonAST.JValue
import org.joda.time.LocalDateTime
case class EventBodyWithoutRepository(actor: String, public: Boolean, url: String, actor_attributes: ActorAttributes,
created_at: LocalDateTime)
object EventBodyWithoutRepository
{
def apply(json: JValue): Option[EventBodyWithoutRepository] =
{
val n2s = gh3.node2String(json)(_)
val n2b = gh3.node2Boolean(json)(_)
val n2ldt = gh3.node2LocalDateTime(json)(_)
val actor = n2s("actor")
val public = n2b("public")
val url = n2s("url")
val actor_attributes = ActorAttributes(json \ "actor_attributes")
val created_at = n2ldt("created_at")
val params = Seq(actor, public, url, actor_attributes, created_at)
if(params.forall(_.isDefined))
Some(EventBodyWithoutRepository(actor.get, public.get, url.get, actor_attributes.get, created_at.get))
else None
}
}
开发者ID:mgoeminne,项目名称:github_etl,代码行数:32,代码来源:EventBodyWithoutRepository.scala
注:本文中的org.joda.time.LocalDateTime类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论