001package de.deepamehta.core.impl; 002 003import de.deepamehta.core.Association; 004import de.deepamehta.core.Role; 005import de.deepamehta.core.model.RoleModel; 006 007import org.codehaus.jettison.json.JSONObject; 008 009 010 011abstract class RoleImpl implements Role { 012 013 // ---------------------------------------------------------------------------------------------- Instance Variables 014 015 RoleModelImpl model; // underlying model 016 017 AssociationModelImpl assoc; // the association this role is involved in 018 019 PersistenceLayer pl; 020 021 // ---------------------------------------------------------------------------------------------------- Constructors 022 023 RoleImpl(RoleModelImpl model, AssociationModelImpl assoc, PersistenceLayer pl) { 024 this.model = model; 025 this.assoc = assoc; 026 this.pl = pl; 027 } 028 029 // -------------------------------------------------------------------------------------------------- Public Methods 030 031 032 033 // === Role Implementation === 034 035 @Override 036 public String getRoleTypeUri() { 037 return model.getRoleTypeUri(); 038 } 039 040 @Override 041 public long getPlayerId() { 042 return model.getPlayerId(); 043 } 044 045 // Note: getPlayer() remains abstract 046 047 // --- 048 049 @Override 050 public void setRoleTypeUri(String roleTypeUri) { 051 assoc.updateRoleTypeUri(model, roleTypeUri); 052 } 053 054 // --- 055 056 @Override 057 public RoleModel getModel() { 058 return model; 059 } 060 061 // --- 062 063 @Override 064 public JSONObject toJSON() { 065 return model.toJSON(); 066 } 067}