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
| 58 | * memory leaks that could occur from an outside event listener. |
| 59 | */ |
| 60 | public 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); |
nothing calls this directly
no outgoing calls
no test coverage detected