Add ControlUtil.

This commit is contained in:
takezoe
2013-09-19 18:53:50 +09:00
parent b4dd067d61
commit 062d6cd066

View File

@@ -0,0 +1,37 @@
package util
import org.eclipse.jgit.api.Git
/**
* Provides control facilities.
*/
object ControlUtil {
def defining[A, B](value: A)(f: A => B): B = f(value)
def using[A <% { def close(): Unit }, B](resource: A)(f: A => B): B =
try {
f(resource)
} finally {
if(resource != null){
try {
resource.close()
} catch {
case e: Throwable => // ignore
}
}
}
/**
* Use this method to use the Git object.
* Repository resources are released certainly after processing.
*/
def using[T](git: Git)(f: Git => T): T =
try {
f(git)
} finally {
git.getRepository.close
}
}