2010-03-29 19:17:55 -04:00
|
|
|
package spark
|
|
|
|
|
|
|
|
import java.io._
|
|
|
|
|
2010-10-04 15:01:05 -04:00
|
|
|
import scala.collection.mutable.ArrayBuffer
|
|
|
|
|
|
|
|
object Utils {
|
2010-03-29 19:17:55 -04:00
|
|
|
def serialize[T](o: T): Array[Byte] = {
|
|
|
|
val bos = new ByteArrayOutputStream
|
|
|
|
val oos = new ObjectOutputStream(bos)
|
|
|
|
oos.writeObject(o)
|
|
|
|
oos.close
|
|
|
|
return bos.toByteArray
|
|
|
|
}
|
|
|
|
|
|
|
|
def deserialize[T](bytes: Array[Byte]): T = {
|
|
|
|
val bis = new ByteArrayInputStream(bytes)
|
|
|
|
val ois = new ObjectInputStream(bis)
|
|
|
|
return ois.readObject.asInstanceOf[T]
|
|
|
|
}
|
|
|
|
|
|
|
|
def deserialize[T](bytes: Array[Byte], loader: ClassLoader): T = {
|
|
|
|
val bis = new ByteArrayInputStream(bytes)
|
|
|
|
val ois = new ObjectInputStream(bis) {
|
|
|
|
override def resolveClass(desc: ObjectStreamClass) =
|
|
|
|
Class.forName(desc.getName, false, loader)
|
|
|
|
}
|
|
|
|
return ois.readObject.asInstanceOf[T]
|
|
|
|
}
|
2010-10-04 15:01:05 -04:00
|
|
|
|
|
|
|
def isAlpha(c: Char) = {
|
|
|
|
(c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')
|
|
|
|
}
|
|
|
|
|
|
|
|
def splitWords(s: String): Seq[String] = {
|
|
|
|
val buf = new ArrayBuffer[String]
|
|
|
|
var i = 0
|
|
|
|
while (i < s.length) {
|
|
|
|
var j = i
|
|
|
|
while (j < s.length && isAlpha(s.charAt(j))) {
|
|
|
|
j += 1
|
|
|
|
}
|
|
|
|
if (j > i) {
|
|
|
|
buf += s.substring(i, j);
|
|
|
|
}
|
|
|
|
i = j
|
|
|
|
while (i < s.length && !isAlpha(s.charAt(i))) {
|
|
|
|
i += 1
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return buf
|
|
|
|
}
|
2010-03-29 19:17:55 -04:00
|
|
|
}
|