001package de.deepamehta.core.impl;
002
003import de.deepamehta.core.Association;
004import de.deepamehta.core.AssociationRole;
005import de.deepamehta.core.DeepaMehtaObject;
006import de.deepamehta.core.model.AssociationRoleModel;
007
008
009
010/**
011 * An association role that is attached to the {@link DeepaMehtaService}.
012 */
013class 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}