MCPcopy Index your code
hub / github.com/PCGen/pcgen / ListChanges

Class ListChanges

code/src/java/pcgen/rules/context/ListChanges.java:32–185  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

30import pcgen.cdom.reference.ReferenceUtilities;
31
32class ListChanges<T extends CDOMObject> implements AssociatedChanges<CDOMReference<T>>
33{
34 private final String tokenName;
35 private final CDOMObject positive;
36 private final CDOMObject negative;
37 private final CDOMReference<? extends CDOMList<T>> list;
38 private final boolean clear;
39
40 public ListChanges(String token, CDOMObject added, CDOMObject removed, CDOMReference<? extends CDOMList<T>> listref,
41 boolean globallyCleared)
42 {
43 tokenName = token;
44 positive = added;
45 negative = removed;
46 list = listref;
47 clear = globallyCleared;
48 }
49
50 @Override
51 public boolean includesGlobalClear()
52 {
53 return clear;
54 }
55
56 public boolean isEmpty()
57 {
58 /*
59 * TODO This lies because it doesn't analyze tokenName
60 */
61 return !clear && !hasAddedItems() && !hasRemovedItems();
62 }
63
64 @Override
65 public Collection<CDOMReference<T>> getAdded()
66 {
67 TreeSet<CDOMReference<T>> set = new TreeSet<>(ReferenceUtilities.REFERENCE_SORTER);
68 Collection<CDOMReference<T>> listMods = positive.getListMods(list);
69 if (listMods != null)
70 {
71 for (CDOMReference<T> ref : listMods)
72 {
73 for (AssociatedPrereqObject assoc : positive.getListAssociations(list, ref))
74 {
75 if (tokenName.equals(assoc.getAssociation(AssociationKey.TOKEN)))
76 {
77 set.add(ref);
78 }
79 }
80 }
81 }
82 return set;
83 }
84
85 public boolean hasAddedItems()
86 {
87 /*
88 * TODO This lies because it doesn't analyze tokenName
89 */

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected