25 else result.append(c) |
26 else result.append(c) |
26 } |
27 } |
27 result.append("\"") |
28 result.append("\"") |
28 } |
29 } |
29 |
30 |
30 def encode_string(str: String) = { |
31 def encode_string(str: String) = |
|
32 { |
31 val result = new StringBuilder(str.length + 20) |
33 val result = new StringBuilder(str.length + 20) |
32 append_string(str, result) |
34 append_string(str, result) |
33 result.toString |
35 result.toString |
34 } |
36 } |
35 |
37 |
36 |
38 |
|
39 /* list */ |
|
40 |
|
41 def append_list[A](append_elem: (A, StringBuilder) => Unit, body: Iterable[A], |
|
42 result: StringBuilder) |
|
43 { |
|
44 result.append("(") |
|
45 val elems = body.elements |
|
46 if (elems.hasNext) append_elem(elems.next, result) |
|
47 while (elems.hasNext) { |
|
48 result.append(", ") |
|
49 append_elem(elems.next, result) |
|
50 } |
|
51 result.append(")") |
|
52 } |
|
53 |
|
54 def encode_list[A](append_elem: (A, StringBuilder) => Unit, elems: Iterable[A]) = |
|
55 { |
|
56 val result = new StringBuilder(20) |
|
57 append_list(append_elem, elems, result) |
|
58 result.toString |
|
59 } |
|
60 |
|
61 |
37 /* properties */ |
62 /* properties */ |
38 |
63 |
39 def append_properties(props: Properties, result: StringBuilder) = { |
64 def append_properties(props: Properties, result: StringBuilder) |
|
65 { |
40 result.append("(") |
66 result.append("(") |
41 val names = props.propertyNames.asInstanceOf[Enumeration[String]] |
67 val names = props.propertyNames.asInstanceOf[Enumeration[String]] |
42 while (names.hasMoreElements) { |
68 while (names.hasMoreElements) { |
43 val name = names.nextElement; val value = props.getProperty(name) |
69 val name = names.nextElement; val value = props.getProperty(name) |
44 append_string(name, result); result.append(" = "); append_string(value, result) |
70 append_string(name, result); result.append(" = "); append_string(value, result) |