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