Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.law4devs.eu/llms.txt

Use this file to discover all available pages before exploring further.

Overview

Articles are the numbered provisions within each regulation. Use client.articles() to list, fetch, and iterate articles for any framework.

Methods

list(String frameworkSlug)

Returns the first page of articles for a framework.
Page<ArticleSummary> page = client.articles().list("gdpr");

for (ArticleSummary a : page.data()) {
    System.out.println("Art. " + a.number() + " — " + a.title());
}
Returns Page<ArticleSummary>

list(String frameworkSlug, int page, int perPage)

Fetch a specific page with custom page size.
Page<ArticleSummary> page = client.articles().list("cra", 1, 10);
Parameters
ParameterTypeDefaultDescription
frameworkSlugStringrequiredFramework slug, e.g. "gdpr"
pageint1Page number (1-indexed)
perPageint20Items per page (max 100)
Returns Page<ArticleSummary>

get()

Fetch full detail for a single article including all paragraphs.
Article article = client.articles().get("gdpr", "17");

System.out.println(article.title());    // Right to erasure
System.out.println(article.number());   // 17
for (var p : article.paragraphs()) {
    System.out.println(p.reference() + ": " + p.text());
}
Parameters
ParameterTypeDescription
frameworkSlugStringFramework slug
articleNumberStringArticle number, e.g. "17" or "17a"
Returns Article
Fetch articles related to a given article (cross-references).
Page<ArticleSummary> related = client.articles().related("gdpr", "17");
for (ArticleSummary a : related.data()) {
    System.out.println("Related: Art. " + a.number() + " — " + a.title());
}
Returns Page<ArticleSummary>

iter()

Lazily iterate all articles for a framework.
for (ArticleSummary a : client.articles().iter("gdpr")) {
    System.out.println(a.number() + " " + a.title());
}
Returns Iterable<ArticleSummary>

Models

ArticleSummary

Returned by list(), related(), and iter().
FieldTypeDescription
id()intInternal numeric ID
number()StringArticle number, e.g. "17"
title()StringArticle title
frameworkSlug()StringParent framework slug
paragraphCount()intNumber of paragraphs

Article

Returned by get(). Includes all ArticleSummary fields plus:
FieldTypeDescription
paragraphs()List<ArticleParagraph>All paragraphs of the article
tags()List<String>Associated compliance tags

ArticleParagraph

FieldTypeDescription
reference()StringParagraph reference, e.g. "1", "1(a)"
text()StringFull paragraph text

Examples

for (ArticleSummary a : client.articles().iter("nis2")) {
    System.out.printf("Art. %-4s %s%n", a.number(), a.title());
}

Find articles containing specific obligations

Article art = client.articles().get("gdpr", "33");
System.out.println(art.title()); // Notification of a personal data breach

for (var p : art.paragraphs()) {
    if (p.text().contains("72 hours")) {
        System.out.println("72-hour rule in: " + p.reference());
    }
}

Collect all DORA articles into a list

var all = new java.util.ArrayList<ArticleSummary>();
for (ArticleSummary a : client.articles().iter("dora")) {
    all.add(a);
}
System.out.println("Total DORA articles: " + all.size());