|
Scala example source code file (RegexCache.scala)
The Scala RegexCache.scala source code/* NSC -- new Scala compiler * Copyright 2005-2011 LAMP/EPFL * @author Lex Spoon */ package scala.tools.nsc package util import java.util.regex.Pattern import scala.collection.mutable object RegexCache { /** Maps patterns to compiled regexes */ private val regexMap = mutable.Map.empty[String, Pattern] /** Lists the regexes that have been recorded in order */ private val regexList = new mutable.Queue[String] private val regexesToCache = 1000 /** Compile a regex and add it to the cache */ private def compileAndAdd(regex: String): Pattern = { val pattern = Pattern.compile(regex) regexMap += (regex -> pattern) regexList += regex if (regexMap.size > regexesToCache) regexMap -= regexList.dequeue() pattern } /** Compile a regex, caching */ def apply(regex: String): Pattern = regexMap.get(regex) match { case Some(pattern) => pattern case None => compileAndAdd(regex) } } Other Scala examples (source code examples)Here is a short list of links related to this Scala RegexCache.scala source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 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.