iGrind

Untitled

Jan 28th, 2015
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 0.92 KB | None | 0 0
  1. import scala.pickling._
  2. import json._
  3.  
  4. trait ScoringOnt
  5.  
  6. case class GeoObject(name: String) extends ScoringOnt
  7.  
  8. trait Extractor[+T]
  9.  
  10. trait OntsFromStimulus[T] {
  11.   def extract(input: String): T
  12. }
  13.  
  14. trait StimulusMatchingOntExtractor extends Extractor[ScoringOnt] with OntsFromStimulus[ScoringOnt] {
  15.  
  16.   def ontTypeId: Int
  17. }
  18.  
  19. trait UserOnts extends OntsFromStimulus[ScoringOnt] {
  20.  
  21.   def ontTypeId: Int
  22. }
  23.  
  24. case class GeoObjectOntExtractor(ontTypeId: Int, threshold: Option[Double] = None)
  25.   extends StimulusMatchingOntExtractor with UserOnts {
  26.  
  27.   def extract(input: String): ScoringOnt = GeoObject(input)
  28. }
  29.  
  30. object PickleTest extends App {
  31.   val test_serialized_1 = GeoObjectOntExtractor(1).pickle.value
  32.   println(s"Test 1 serialized: \n $test_serialized_1")
  33.   val test_deserialized_1 = JSONPickle(test_serialized_1).unpickle[GeoObjectOntExtractor]
  34.   println(s"Test 1 deserialized; \n  $test_deserialized_1")
  35. }
Advertisement
Add Comment
Please, Sign In to add comment