MCPcopy Index your code
hub / github.com/codenameone/CodenameOne / apply

Method apply

CodenameOne/src/com/codename1/processing/Result.java:1188–1292  ·  view source on GitHub ↗
(final StructuredContent start,
                                    final List tokens, final int firstToken)

Source from the content-addressed store, hash-verified

1186 ///
1187 /// - `IllegalArgumentException`
1188 @SuppressWarnings("PMD.SwitchStmtsShouldHaveDefault")
1189 private StructuredContent apply(final StructuredContent start,
1190 final List tokens, final int firstToken)
1191 throws IllegalArgumentException {
1192
1193 if (start == null) {
1194 return null;
1195 }
1196
1197 final int nTokens = tokens.size();
1198 if (firstToken >= nTokens) {
1199 return start;
1200 }
1201 boolean glob = false;
1202 for (int i = firstToken; i < nTokens; i++) {
1203 final String tok1 = (String) tokens.get(i);
1204 if (tok1.length() == 1
1205 && ResultTokenizer.isDelimiter(tok1.charAt(0))) {
1206 continue;
1207 }
1208 if (tok1.length() == 2) {
1209 if (tok1.equals(SELECT_GLOB)) {
1210 glob = true;
1211 continue;
1212 } else if (tok1.equals(SELECT_PARENT)) {
1213 return apply(start.getParent(), tokens, i + 1);
1214 }
1215 }
1216
1217 if (i + 1 >= nTokens) {
1218 return start;
1219 }
1220 final String tok2 = (String) tokens.get(i + 1);
1221 final char t2 = tok2.charAt(0);
1222 switch (t2) {
1223 case SEPARATOR:
1224 List children;
1225 if (glob) {
1226 children = start.getDescendants(tok1);
1227 } else {
1228 children = start.getChildren(tok1);
1229 }
1230 if (!children.isEmpty()) {
1231 return apply(new SubContent(children, start),
1232 tokens, i + 2);
1233 }
1234 return null;
1235 case ARRAY_START:
1236 if (i + 2 >= nTokens) {
1237 throw new IllegalArgumentException(
1238 "Syntax error: array must be followed by a dimension: "
1239 + tok1);
1240 }
1241 final String tok3 = (String) tokens.get(i + 2);
1242
1243 Evaluator evaluator = EvaluatorFactory
1244 .createEvaluator(tok3);
1245

Callers 1

internalGetAsArrayMethod · 0.95

Calls 14

lengthMethod · 0.95
isDelimiterMethod · 0.95
charAtMethod · 0.95
equalsMethod · 0.95
isEmptyMethod · 0.95
createEvaluatorMethod · 0.95
evaluateMethod · 0.95
addMethod · 0.95
sizeMethod · 0.65
getMethod · 0.65
getParentMethod · 0.65
getDescendantsMethod · 0.65

Tested by

no test coverage detected