litesoft
Diff Revisions
49
vs
772
for /trunk/Java/core/Anywhere/src/org/litesoft/core/hierarchicaldata/HierarchicalDataSimpleFactory.java
|
@@ -3,6 +3,7 @@ |
3 |
3 |
|
|
4 |
4 |
|
import java.util.*; |
5 |
5 |
|
|
|
6 |
+ |
import org.litesoft.charstreams.*; |
6 |
7 |
|
import org.litesoft.core.util.*; |
7 |
8 |
|
|
8 |
9 |
|
public class HierarchicalDataSimpleFactory extends HierarchicalData implements HierarchicalDataFactory |
|
@@ -67,16 +68,16 @@ |
67 |
68 |
|
{ |
68 |
69 |
|
if ( pNameValues.length() != 0 ) |
69 |
70 |
|
{ |
70 |
|
- |
CharSource cs = new CharSource( pNameValues ); |
|
71 |
+ |
CharSource cs = new CharSourceFromSequence( pNameValues ); |
71 |
72 |
|
while ( cs.anyRemaining() ) |
72 |
73 |
|
{ |
73 |
|
- |
String name = cs.getUpTo( '=' ).trim(); |
|
74 |
+ |
String name = getUpTo( cs, '=' ).trim(); |
74 |
75 |
|
if ( name.length() == 0 ) |
75 |
76 |
|
{ |
76 |
77 |
|
return false; |
77 |
78 |
|
} |
78 |
79 |
|
cs.get(); // eat '=' |
79 |
|
- |
cs.consumeSpaces(); |
|
80 |
+ |
consumeSpaces( cs ); |
80 |
81 |
|
if ( cs.anyRemaining() ) |
81 |
82 |
|
{ |
82 |
83 |
|
StringBuilder valueSB = new StringBuilder(); |
|
@@ -92,7 +93,7 @@ |
92 |
93 |
|
{ |
93 |
94 |
|
return false; |
94 |
95 |
|
} |
95 |
|
- |
cs.consumeSpaces(); |
|
96 |
+ |
consumeSpaces( cs ); |
96 |
97 |
|
mAttributeNameValues.put( name, valueSB.toString() ); |
97 |
98 |
|
} |
98 |
99 |
|
} |
|
@@ -100,6 +101,28 @@ |
100 |
101 |
|
return true; |
101 |
102 |
|
} |
102 |
103 |
|
|
|
104 |
+ |
private void consumeSpaces( CharSource pCS ) |
|
105 |
+ |
{ |
|
106 |
+ |
while ( pCS.peek() == ' ' ) |
|
107 |
+ |
{ |
|
108 |
+ |
pCS.get(); |
|
109 |
+ |
} |
|
110 |
+ |
} |
|
111 |
+ |
|
|
112 |
+ |
private String getUpTo( CharSource pCS, char c ) |
|
113 |
+ |
{ |
|
114 |
+ |
StringBuilder sb = new StringBuilder(); |
|
115 |
+ |
while ( pCS.anyRemaining() ) |
|
116 |
+ |
{ |
|
117 |
+ |
if ( c == pCS.peek() ) |
|
118 |
+ |
{ |
|
119 |
+ |
return sb.toString(); |
|
120 |
+ |
} |
|
121 |
+ |
sb.append( pCS.getRequired() ); |
|
122 |
+ |
} |
|
123 |
+ |
return ""; |
|
124 |
+ |
} |
|
125 |
+ |
|
103 |
126 |
|
private void parseRegularAttributeValue( StringBuilder pValueSB, CharSource pCS ) |
104 |
127 |
|
{ |
105 |
128 |
|
for ( int c = pCS.peek(); (c != -1) && (c != ' '); c = pCS.peek() ) |