001 package de.deepamehta.core.model; 002 003 import org.codehaus.jettison.json.JSONObject; 004 005 006 007 public class TopicModel extends DeepaMehtaObjectModel { 008 009 // ---------------------------------------------------------------------------------------------------- Constructors 010 011 public TopicModel(String typeUri) { 012 super(typeUri); 013 } 014 015 public TopicModel(String typeUri, SimpleValue value) { 016 super(typeUri, value); 017 } 018 019 public TopicModel(String typeUri, CompositeValueModel composite) { 020 super(typeUri, composite); 021 } 022 023 public TopicModel(String uri, String typeUri) { 024 super(uri, typeUri); 025 } 026 027 public TopicModel(String uri, String typeUri, SimpleValue value) { 028 super(uri, typeUri, value); 029 } 030 031 public TopicModel(String uri, String typeUri, CompositeValueModel composite) { 032 super(uri, typeUri, composite); 033 } 034 035 public TopicModel(long id) { 036 super(id); 037 } 038 039 public TopicModel(long id, String typeUri) { 040 super(id, typeUri); 041 } 042 043 public TopicModel(long id, CompositeValueModel composite) { 044 super(id, composite); 045 } 046 047 /** 048 * @param uri If <code>null</code> an empty string is set. This is OK. 049 * @param typeUri Mandatory. Note: only the internal meta type topic (ID 0) has no type URI (null). 050 * @param value If <code>null</code> an empty string value is set. This is OK. 051 * @param composite If <code>null</code> an empty composite is set. This is OK. 052 */ 053 public TopicModel(long id, String uri, String typeUri, SimpleValue value, CompositeValueModel composite) { 054 super(id, uri, typeUri, value, composite); 055 } 056 057 public TopicModel(TopicModel model) { 058 super(model); 059 } 060 061 public TopicModel(JSONObject model) { 062 super(model); 063 } 064 065 public TopicModel(JSONObject typeModel, String typeUri) { 066 super(typeModel, typeUri); 067 } 068 069 // -------------------------------------------------------------------------------------------------- Public Methods 070 071 072 073 // === Implementation of the abstract methods === 074 075 @Override 076 public RoleModel createRoleModel(String roleTypeUri) { 077 return new TopicRoleModel(getId(), roleTypeUri); 078 } 079 080 081 082 // === Java API === 083 084 @Override 085 public TopicModel clone() { 086 try { 087 return (TopicModel) super.clone(); 088 } catch (Exception e) { 089 throw new RuntimeException("Cloning a TopicModel failed", e); 090 } 091 } 092 093 @Override 094 public String toString() { 095 return "topic (" + super.toString() + ")"; 096 } 097 }