MCPcopy Create free account
hub / github.com/PCGen/pcgen / DelegatingDataSet

Class DelegatingDataSet

code/src/java/pcgen/gui2/facade/DelegatingDataSet.java:60–350  ·  view source on GitHub ↗

This class implements a DataSetFacade by delegating to another DataSetFacade. This class is the DataSetFacade returned by the CharacterFacadeImpl and is necessary to protect outside event listeners from directly listening to the real DataSetFacade. By adding this delegate layer, upon

Source from the content-addressed store, hash-verified

58 * memory leaks that could occur from an outside event listener.
59 */
60public class DelegatingDataSet implements DataSetFacade
61{
62
63 private final DelegatingListFacade<Race> races;
64 private final DelegatingListFacade<PCClass> classes;
65 private final DelegatingListFacade<Skill> skills;
66 private final DelegatingListFacade<Deity> deities;
67 private final DelegatingListFacade<PCTemplate> templates;
68 private final DelegatingListFacade<PCAlignment> alignments;
69 private final DelegatingListFacade<Kit> kits;
70 private final DelegatingListFacade<PCStat> stats;
71 private final DelegatingAbilitiesMap abilities;
72 private final DelegatingListFacade<Campaign> campaigns;
73 private final DelegatingListFacade<BodyStructure> bodyStructures;
74 private final DelegatingListFacade<EquipmentFacade> equipment;
75 private final DelegatingListFacade<String> xpTableNames;
76 private final DelegatingListFacade<GearBuySellFacade> gearBuySellSchemes;
77 private final DelegatingListFacade<String> characterTypes;
78 private final DelegatingListFacade<SizeAdjustment> sizes;
79
80 private final DataSetFacade delegate;
81
82 public DelegatingDataSet(DataSetFacade delegate)
83 {
84 this.delegate = delegate;
85 this.abilities = new DelegatingAbilitiesMap(delegate.getAbilities());
86 this.races = new DelegatingListFacade<>(delegate.getRaces());
87 this.classes = new DelegatingListFacade<>(delegate.getClasses());
88 this.deities = new DelegatingListFacade<>(delegate.getDeities());
89 this.skills = new DelegatingListFacade<>(delegate.getSkills());
90 this.templates = new DelegatingListFacade<>(delegate.getTemplates());
91 this.alignments = new DelegatingListFacade<>(delegate.getAlignments());
92 this.kits = new DelegatingListFacade<>(delegate.getKits());
93 this.stats = new DelegatingListFacade<>(delegate.getStats());
94 this.campaigns = new DelegatingListFacade<>(delegate.getCampaigns());
95 this.bodyStructures = new DelegatingListFacade<>(delegate.getEquipmentLocations());
96 this.equipment = new DelegatingListFacade<>(delegate.getEquipment());
97 this.xpTableNames = new DelegatingListFacade<>(delegate.getXPTableNames());
98 this.gearBuySellSchemes = new DelegatingListFacade<>(delegate.getGearBuySellSchemes());
99 this.characterTypes = new DelegatingListFacade<>(delegate.getCharacterTypes());
100 this.sizes = new DelegatingListFacade<>(delegate.getSizes());
101
102 }
103
104 public void detachDelegates()
105 {
106 abilities.detach();
107 races.setDelegate(null);
108 classes.setDelegate(null);
109 deities.setDelegate(null);
110 skills.setDelegate(null);
111 templates.setDelegate(null);
112 alignments.setDelegate(null);
113 kits.setDelegate(null);
114 stats.setDelegate(null);
115 campaigns.setDelegate(null);
116 bodyStructures.setDelegate(null);
117 equipment.setDelegate(null);

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected