1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.search.backend.remoterepository.extractor;
20
21 import java.util.List;
22
23 import org.apache.maven.search.Record;
24 import org.apache.maven.search.backend.remoterepository.Context;
25 import org.apache.maven.search.backend.remoterepository.RecordFactory;
26 import org.jsoup.nodes.Document;
27 import org.jsoup.nodes.Element;
28 import org.jsoup.select.Elements;
29
30
31
32
33 public class Nx2ResponseExtractor extends ResponseExtractorSupport {
34 protected boolean accept(String name) {
35 return !"Parent Directory".equals(name) && super.accept(name);
36 }
37
38 private String name(Element element) {
39 String name = element.text();
40 if (name.endsWith("/")) {
41 name = name.substring(0, name.length() - 1);
42 }
43 return name;
44 }
45
46 @Override
47 public int populateG(Context context, Document document, RecordFactory recordFactory, List<Record> page) {
48
49
50 Elements elements = document.getElementsByTag("a");
51 for (Element element : elements) {
52 String name = name(element);
53 if (accept(name)) {
54 page.add(recordFactory.create(context.getGroupId(), name, null, null, null));
55 }
56 }
57 return page.size();
58 }
59
60 @Override
61 public int populateGAV(Context context, Document document, RecordFactory recordFactory, List<Record> page) {
62
63
64 Elements elements = document.getElementsByTag("a");
65 for (Element element : elements) {
66
67 String name = element.attr("href");
68 if (name.endsWith("/") || !name.contains(".")) {
69 continue;
70 }
71 populateGAVName(context, name(element), recordFactory, page);
72 }
73 return page.size();
74 }
75 }