001    package de.deepamehta.core.impl;
002    
003    import de.deepamehta.core.Association;
004    import de.deepamehta.core.AssociationRole;
005    import de.deepamehta.core.DeepaMehtaObject;
006    import de.deepamehta.core.model.AssociationRoleModel;
007    
008    
009    
010    /**
011     * An association role that is attached to the {@link DeepaMehtaService}.
012     */
013    class AttachedAssociationRole extends AttachedRole implements AssociationRole {
014    
015        // ---------------------------------------------------------------------------------------------------- Constructors
016    
017        AttachedAssociationRole(AssociationRoleModel model, Association assoc, EmbeddedService dms) {
018            super(model, assoc, dms);
019        }
020    
021        // -------------------------------------------------------------------------------------------------- Public Methods
022    
023    
024    
025        // === Role Implementation ===
026    
027        @Override
028        public DeepaMehtaObject getPlayer() {
029            return dms.getAssociation(getPlayerId());
030        }
031    
032    
033    
034        // === AssociationRole Implementation ===
035    
036        @Override
037        public Association getAssociation() {
038            return (Association) getPlayer();
039        }
040    
041    
042    
043        // === AttachedRole Overrides ===
044    
045        @Override
046        public AssociationRoleModel getModel() {
047            return (AssociationRoleModel) super.getModel();
048        }
049    }