|
Lift Framework example source code file (DefaultRoutines.scala)
The Lift Framework DefaultRoutines.scala source code
/*
* Copyright 2010-2011 WorldWide Conferencing, LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.liftweb
package http
import java.util.{ResourceBundle, Locale}
import common._
import util._
/**
* Many routines in Lift can be customized in LiftRules,
* but have default behaviors. This singleton contains
* the default routines. <b>**DO NOT** call these methods
* directly. Use LiftRules to call them. So, why make them
* public? So, we can document the default behaviors.
*/
object DefaultRoutines {
private val resourceMap: LRUMap[(String, List[String]),
Box[ResourceBundle]] =
new LRUMap(2000)
private def rawResBundle(loc: Locale, path: List[String]): Box[ResourceBundle] = {
val realPath = path match {
case Nil => List("_resources")
case x => x
}
for {
xml <- Templates(realPath, loc) or
Templates("templates-hidden" :: realPath, loc) or
Templates(realPath.dropRight(1) :::
("resources-hidden" ::
realPath.takeRight(1)), loc)
bundle <- BundleBuilder.convert(xml, loc)
} yield bundle
}
private def resBundleFor(loc: Locale, path: List[String]): Box[ResourceBundle] =
resourceMap.synchronized {
val key = loc.toString -> path
resourceMap.get(key) match {
case Full(x) => x
case _ => {
val res = rawResBundle(loc, path)
if (!Props.devMode) resourceMap(key) = res
res
}
}
}
/**
* Returns the resources for the current request. In development
* mode, these resources will be reloaded on each request. In
* production mode, the resources will be cached (up to 2000
* resource bundles will be cached). <br/>
Other Lift Framework examples (source code examples)Here is a short list of links related to this Lift Framework DefaultRoutines.scala source code file: |
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.