MCPcopy Create free account
hub / github.com/jhy/jsoup / parseNodeSelector

Method parseNodeSelector

src/main/java/org/jsoup/select/QueryParser.java:265–302  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

263
264 // ::comment etc
265 private Evaluator parseNodeSelector() {
266 final String pseudo = tq.consumeCssIdentifier();
267 inNodeContext = true; // Enter node context
268
269 Evaluator left;
270 switch (pseudo) {
271 case "node":
272 left = new NodeEvaluator.InstanceType(Node.class, pseudo);
273 break;
274 case "leafnode":
275 left = new NodeEvaluator.InstanceType(LeafNode.class, pseudo);
276 break;
277 case "text":
278 left = new NodeEvaluator.InstanceType(TextNode.class, pseudo);
279 break;
280 case "comment":
281 left = new NodeEvaluator.InstanceType(Comment.class, pseudo);
282 break;
283 case "data":
284 left = new NodeEvaluator.InstanceType(DataNode.class, pseudo);
285 break;
286 case "cdata":
287 left = new NodeEvaluator.InstanceType(CDataNode.class, pseudo);
288 break;
289 default:
290 throw new Selector.SelectorParseException(
291 "Could not parse query '%s': unknown node type '::%s'", query, pseudo);
292 }
293
294 // Handle following subclasses in node context (like ::comment:contains())
295 Evaluator right;
296 while ((right = parseSubclass()) != null) {
297 left = and(left, right);
298 }
299
300 inNodeContext = false;
301 return left;
302 }
303
304 private Evaluator byId() {
305 String id = tq.consumeCssIdentifier();

Callers 1

parseSubclassMethod · 0.95

Calls 3

parseSubclassMethod · 0.95
andMethod · 0.95
consumeCssIdentifierMethod · 0.80

Tested by

no test coverage detected