1
2
3
4
5
6 package gov.nist.secauto.oscal.lib.profile.resolver.support;
7
8 import gov.nist.secauto.metaschema.core.metapath.item.node.IModelNodeItem;
9
10 import java.net.URI;
11
12 import edu.umd.cs.findbugs.annotations.NonNull;
13
14 public interface IEntityItem {
15
16 enum ItemType {
17 ROLE(false),
18 LOCATION(true),
19 PARTY(true),
20 GROUP(false),
21 CONTROL(false),
22 PART(false),
23 PARAMETER(false),
24 RESOURCE(true);
25
26 private final boolean uuid;
27
28 ItemType(boolean isUuid) {
29 this.uuid = isUuid;
30 }
31
32 public boolean isUuid() {
33 return uuid;
34 }
35 }
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 @NonNull
52 String getOriginalIdentifier();
53
54
55
56
57
58
59 @NonNull
60 String getIdentifier();
61
62
63
64
65
66
67
68 boolean isIdentifierReassigned();
69
70 @NonNull
71 IModelNodeItem<?, ?> getInstance();
72
73 void setInstance(@NonNull IModelNodeItem<?, ?> item);
74
75 @NonNull
76 <T> T getInstanceValue();
77
78 @NonNull
79 ItemType getItemType();
80
81 URI getSource();
82
83 int getReferenceCount();
84
85 void incrementReferenceCount();
86
87 int resetReferenceCount();
88 }