-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathBuiltInNodeDefinitions.java
More file actions
61 lines (57 loc) · 2.82 KB
/
BuiltInNodeDefinitions.java
File metadata and controls
61 lines (57 loc) · 2.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package com.demcha.compose.document.layout;
import com.demcha.compose.document.layout.definitions.BarcodeDefinition;
import com.demcha.compose.document.layout.definitions.CanvasLayerDefinition;
import com.demcha.compose.document.layout.definitions.ContainerDefinition;
import com.demcha.compose.document.layout.definitions.EllipseDefinition;
import com.demcha.compose.document.layout.definitions.ImageDefinition;
import com.demcha.compose.document.layout.definitions.LayerStackDefinition;
import com.demcha.compose.document.layout.definitions.LineDefinition;
import com.demcha.compose.document.layout.definitions.ListDefinition;
import com.demcha.compose.document.layout.definitions.PageBreakDefinition;
import com.demcha.compose.document.layout.definitions.ParagraphDefinition;
import com.demcha.compose.document.layout.definitions.RowDefinition;
import com.demcha.compose.document.layout.definitions.SectionDefinition;
import com.demcha.compose.document.layout.definitions.ShapeContainerDefinition;
import com.demcha.compose.document.layout.definitions.ShapeDefinition;
import com.demcha.compose.document.layout.definitions.SpacerDefinition;
import com.demcha.compose.document.layout.definitions.TableDefinition;
import java.util.Objects;
/**
* Registers the built-in canonical node definitions on a {@link NodeRegistry}.
*
* <p>The actual layout logic lives in {@code document.layout.definitions} (one
* file per node type) and {@link TextFlowSupport} / {@link NodeDefinitionSupport}
* for shared helpers. This class is the single registration entry point.</p>
*
* @author Artem Demchyshyn
*/
public final class BuiltInNodeDefinitions {
private BuiltInNodeDefinitions() {
}
/**
* Registers every built-in canonical node definition with the supplied registry.
*
* @param registry mutable registry to populate
* @return the same registry after registration
*/
public static NodeRegistry registerDefaults(NodeRegistry registry) {
Objects.requireNonNull(registry, "registry");
return registry
.register(new ParagraphDefinition())
.register(new ListDefinition())
.register(new ShapeDefinition())
.register(new SpacerDefinition())
.register(new LineDefinition())
.register(new EllipseDefinition())
.register(new ImageDefinition())
.register(new BarcodeDefinition())
.register(new PageBreakDefinition())
.register(new ContainerDefinition())
.register(new SectionDefinition())
.register(new RowDefinition())
.register(new LayerStackDefinition())
.register(new ShapeContainerDefinition())
.register(new TableDefinition())
.register(new CanvasLayerDefinition());
}
}