This repository was archived by the owner on Mar 8, 2020. It is now read-only.
File tree 2 files changed +24
-8
lines changed
main/scala/org/bblfsh/client/v2
test/scala/org/bblfsh/client/v2
2 files changed +24
-8
lines changed Original file line number Diff line number Diff line change 1
1
package org .bblfsh .client .v2
2
2
3
+ import java .io .Serializable
4
+
3
5
import scala .collection .mutable
4
6
5
7
/** UAST nodes representation on the JVM side.
@@ -46,15 +48,31 @@ case class JFloat(num: Double) extends JNode
46
48
case class JUint (num : Long ) extends JNode
47
49
case class JInt (num : Long ) extends JNode
48
50
case class JBool (value : Boolean ) extends JNode
51
+
49
52
case class JObject (obj : mutable.Buffer [JField ]) extends JNode {
50
53
def this () = this (mutable.Buffer [JField ]())
51
54
def add (k : String , v : JNode ) = {
52
55
obj += ((k, v))
53
56
}
54
57
}
58
+ case object JObject {
59
+ def apply [T <: (Product with Serializable with JNode )](ns : (String , T )* ) = {
60
+ val jo = new JObject ()
61
+ jo.obj ++= ns
62
+ jo
63
+ }
64
+ }
65
+
55
66
case class JArray (arr : mutable.Buffer [JNode ]) extends JNode {
56
67
def this (size : Int ) = this (new mutable.ArrayBuffer [JNode ](size))
57
- def add (v : JNode ) = {
58
- arr += v
68
+ def add (n : JNode ) = {
69
+ arr += n
59
70
}
60
71
}
72
+ case object JArray {
73
+ def apply [T <: (Product with Serializable with JNode )](ns : T * ) = {
74
+ val ja = new JArray (ns.length)
75
+ ja.arr ++= ns
76
+ ja
77
+ }
78
+ }
Original file line number Diff line number Diff line change @@ -2,20 +2,18 @@ package org.bblfsh.client.v2
2
2
3
3
import org .scalatest .{BeforeAndAfter , FlatSpec , Matchers }
4
4
5
- import scala .collection .mutable .Buffer
6
-
7
5
8
6
class JNodeTest extends FlatSpec
9
7
with BeforeAndAfter
10
8
with Matchers {
11
9
12
- val rootTree = JArray (Buffer (
13
- JObject (Buffer (
10
+ val rootTree = JArray (
11
+ JObject (
14
12
" k1" -> JString (" v1" ),
15
13
" k2" -> JBool (false )
16
- )) ,
14
+ ),
17
15
JString (" test" )
18
- ))
16
+ )
19
17
20
18
" JNode" should " expose children" in {
21
19
rootTree.children.size shouldEqual 2
You can’t perform that action at this time.
0 commit comments