001package de.deepamehta.core.impl; 002 003import de.deepamehta.core.DeepaMehtaObject; 004import de.deepamehta.core.Topic; 005import de.deepamehta.core.TopicRole; 006 007 008 009/** 010 * A topic role that is attached to the {@link PersistenceLayer}. 011 */ 012class TopicRoleImpl extends RoleImpl implements TopicRole { 013 014 // ---------------------------------------------------------------------------------------------------- Constructors 015 016 TopicRoleImpl(TopicRoleModelImpl 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 new TopicImpl(getModel().getPlayer(), pl); // ### TODO: permission check? 029 } 030 031 032 033 // === TopicRole Implementation === 034 035 @Override 036 public String getTopicUri() { 037 return getModel().getTopicUri(); 038 } 039 040 @Override 041 public boolean topicIdentifiedByUri() { 042 return getModel().topicIdentifiedByUri(); 043 } 044 045 // --- 046 047 @Override 048 public Topic getTopic() { 049 return (Topic) getPlayer(); 050 } 051 052 053 054 // === RoleImpl Overrides === 055 056 @Override 057 public TopicRoleModelImpl getModel() { 058 return (TopicRoleModelImpl) model; 059 } 060}