• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

knowledgepixels / nanodash / 18155160356

01 Oct 2025 07:42AM UTC coverage: 13.788% (-0.03%) from 13.817%
18155160356

push

github

ashleycaselli
docs: add missing or update Javadoc annotations

445 of 4084 branches covered (10.9%)

Branch coverage included in aggregate %.

1155 of 7520 relevant lines covered (15.36%)

0.69 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
src/main/java/com/knowledgepixels/nanodash/component/QueryItem.java
1
package com.knowledgepixels.nanodash.component;
2

3
import com.knowledgepixels.nanodash.GrlcQuery;
4
import com.knowledgepixels.nanodash.User;
5
import com.knowledgepixels.nanodash.Utils;
6
import com.knowledgepixels.nanodash.page.QueryPage;
7
import org.apache.wicket.markup.html.basic.Label;
8
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
9
import org.apache.wicket.markup.html.panel.Panel;
10
import org.apache.wicket.request.mapper.parameter.PageParameters;
11
import org.eclipse.rdf4j.model.IRI;
12
import org.nanopub.SimpleTimestampPattern;
13
import org.nanopub.extra.security.NanopubSignatureElement;
14
import org.nanopub.extra.security.SignatureUtils;
15
import org.slf4j.Logger;
16
import org.slf4j.LoggerFactory;
17

18
import java.text.SimpleDateFormat;
19
import java.util.Calendar;
20

21
/**
22
 * A panel representing a single query item in a list.
23
 * Displays the query label as a link, the user who created it, and the creation timestamp.
24
 */
25
public class QueryItem extends Panel {
26

27
    private static final Logger logger = LoggerFactory.getLogger(QueryItem.class);
×
28

29
    /**
30
     * Constructor.
31
     *
32
     * @param id    the Wicket id for this panel
33
     * @param query the GrlcQuery object containing query details
34
     */
35
    public QueryItem(String id, GrlcQuery query) {
36
        super(id);
×
37

38
        PageParameters params = new PageParameters();
×
39
        params.add("id", query.getQueryId());
×
40
        BookmarkablePageLink<Void> l = new BookmarkablePageLink<Void>("querylink", QueryPage.class, params);
×
41
        l.add(new Label("linktext", query.getLabel()));
×
42
        add(l);
×
43

44
        String userString = "somebody";
×
45
        try {
46
            NanopubSignatureElement se = SignatureUtils.getSignatureElement(query.getNanopub());
×
47
            if (se != null) {
×
48
                IRI signer = (se.getSigners().isEmpty() ? null : se.getSigners().iterator().next());
×
49
                String pubkeyhash = Utils.createSha256HexHash(se.getPublicKeyString());
×
50
                userString = User.getShortDisplayNameForPubkeyhash(signer, pubkeyhash);
×
51
            }
52
        } catch (Exception ex) {
×
53
            logger.error("Error retrieving signature info: {}", ex.getMessage());
×
54
        }
×
55
        add(new Label("user", userString));
×
56
        String timeString = "unknown date";
×
57
        Calendar c = SimpleTimestampPattern.getCreationTime(query.getNanopub());
×
58
        if (c != null) {
×
59
            timeString = (new SimpleDateFormat("yyyy-MM-dd")).format(c.getTime());
×
60
        }
61
        add(new Label("timestamp", timeString));
×
62
    }
×
63

64
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc