001package de.deepamehta.core.service; 002 003import de.deepamehta.core.model.AssociationModel; 004import de.deepamehta.core.model.AssociationDefinitionModel; 005import de.deepamehta.core.model.AssociationRoleModel; 006import de.deepamehta.core.model.AssociationTypeModel; 007import de.deepamehta.core.model.ChildTopicsModel; 008import de.deepamehta.core.model.DeepaMehtaObjectModel; 009import de.deepamehta.core.model.IndexMode; 010import de.deepamehta.core.model.RelatedAssociationModel; 011import de.deepamehta.core.model.RelatedTopicModel; 012import de.deepamehta.core.model.RoleModel; 013import de.deepamehta.core.model.SimpleValue; 014import de.deepamehta.core.model.TopicModel; 015import de.deepamehta.core.model.TopicDeletionModel; 016import de.deepamehta.core.model.TopicReferenceModel; 017import de.deepamehta.core.model.TopicRoleModel; 018import de.deepamehta.core.model.TopicTypeModel; 019import de.deepamehta.core.model.TypeModel; 020import de.deepamehta.core.model.ViewConfigurationModel; 021import de.deepamehta.core.model.facets.FacetValueModel; 022import de.deepamehta.core.model.topicmaps.AssociationViewModel; 023import de.deepamehta.core.model.topicmaps.TopicViewModel; 024import de.deepamehta.core.model.topicmaps.ViewProperties; 025 026import org.codehaus.jettison.json.JSONArray; 027import org.codehaus.jettison.json.JSONException; 028import org.codehaus.jettison.json.JSONObject; 029 030import java.util.List; 031 032 033 034public interface ModelFactory { 035 036 037 038 // === TopicModel === 039 040 TopicModel newTopicModel(long id, String uri, String typeUri, SimpleValue value, ChildTopicsModel childTopics); 041 042 TopicModel newTopicModel(ChildTopicsModel childTopics); 043 044 TopicModel newTopicModel(String typeUri); 045 046 TopicModel newTopicModel(String typeUri, SimpleValue value); 047 048 TopicModel newTopicModel(String typeUri, ChildTopicsModel childTopics); 049 050 TopicModel newTopicModel(String uri, String typeUri); 051 052 TopicModel newTopicModel(String uri, String typeUri, SimpleValue value); 053 054 TopicModel newTopicModel(String uri, String typeUri, ChildTopicsModel childTopics); 055 056 TopicModel newTopicModel(long id); 057 058 TopicModel newTopicModel(long id, ChildTopicsModel childTopics); 059 060 TopicModel newTopicModel(TopicModel topic); 061 062 TopicModel newTopicModel(JSONObject topic); 063 064 065 066 // === AssociationModel === 067 068 AssociationModel newAssociationModel(long id, String uri, String typeUri, RoleModel roleModel1, 069 RoleModel roleModel2, SimpleValue value, ChildTopicsModel childTopics); 070 071 AssociationModel newAssociationModel(String typeUri, RoleModel roleModel1, RoleModel roleModel2); 072 073 AssociationModel newAssociationModel(String typeUri, RoleModel roleModel1, RoleModel roleModel2, 074 ChildTopicsModel childTopics); 075 076 AssociationModel newAssociationModel(); 077 078 AssociationModel newAssociationModel(ChildTopicsModel childTopics); 079 080 AssociationModel newAssociationModel(long id, String uri, String typeUri, RoleModel roleModel1, 081 RoleModel roleModel2); 082 083 AssociationModel newAssociationModel(AssociationModel assoc); 084 085 AssociationModel newAssociationModel(JSONObject assoc); 086 087 088 089 // === ChildTopicsModel === 090 091 ChildTopicsModel newChildTopicsModel(); 092 093 ChildTopicsModel newChildTopicsModel(JSONObject values); 094 095 /** 096 * Utility. 097 */ 098 String childTypeUri(String assocDefUri); 099 100 101 102 // === TopicRoleModel === 103 104 TopicRoleModel newTopicRoleModel(long topicId, String roleTypeUri); 105 106 TopicRoleModel newTopicRoleModel(String topicUri, String roleTypeUri); 107 108 TopicRoleModel newTopicRoleModel(JSONObject topicRoleModel); 109 110 111 112 // === AssociationRoleModel === 113 114 AssociationRoleModel newAssociationRoleModel(long assocId, String roleTypeUri); 115 116 AssociationRoleModel newAssociationRoleModel(JSONObject assocRoleModel); 117 118 119 120 // === RelatedTopicModel === 121 122 RelatedTopicModel newRelatedTopicModel(long topicId); 123 124 RelatedTopicModel newRelatedTopicModel(long topicId, AssociationModel relatingAssoc); 125 126 RelatedTopicModel newRelatedTopicModel(String topicUri); 127 128 RelatedTopicModel newRelatedTopicModel(String topicUri, AssociationModel relatingAssoc); 129 130 RelatedTopicModel newRelatedTopicModel(String topicTypeUri, SimpleValue value); 131 132 RelatedTopicModel newRelatedTopicModel(String topicTypeUri, ChildTopicsModel childTopics); 133 134 RelatedTopicModel newRelatedTopicModel(TopicModel topic); 135 136 RelatedTopicModel newRelatedTopicModel(TopicModel topic, AssociationModel relatingAssoc); 137 138 139 140 // === RelatedAssociationModel === 141 142 RelatedAssociationModel newRelatedAssociationModel(AssociationModel assoc, AssociationModel relatingAssoc); 143 144 145 146 // === TopicReferenceModel === 147 148 // TODO: make internal? 149 150 TopicReferenceModel newTopicReferenceModel(long topicId); 151 152 TopicReferenceModel newTopicReferenceModel(long topicId, AssociationModel relatingAssoc); 153 154 TopicReferenceModel newTopicReferenceModel(String topicUri); 155 156 TopicReferenceModel newTopicReferenceModel(String topicUri, AssociationModel relatingAssoc); 157 158 TopicReferenceModel newTopicReferenceModel(long topicId, ChildTopicsModel relatingAssocChildTopics); 159 160 TopicReferenceModel newTopicReferenceModel(String topicUri, ChildTopicsModel relatingAssocChildTopics); 161 162 163 164 // === TopicDeletionModel === 165 166 // TODO: make internal? 167 168 TopicDeletionModel newTopicDeletionModel(long topicId); 169 170 TopicDeletionModel newTopicDeletionModel(String topicUri); 171 172 173 174 // === TopicTypeModel === 175 176 TopicTypeModel newTopicTypeModel(TopicModel typeTopic, String dataTypeUri, 177 List<IndexMode> indexModes, List<AssociationDefinitionModel> assocDefs, 178 List<String> labelConfig, ViewConfigurationModel viewConfig); 179 180 TopicTypeModel newTopicTypeModel(String uri, String value, String dataTypeUri); 181 182 TopicTypeModel newTopicTypeModel(JSONObject topicType); 183 184 185 186 // === AssociationTypeModel === 187 188 AssociationTypeModel newAssociationTypeModel(TopicModel typeTopic, String dataTypeUri, 189 List<IndexMode> indexModes, List<AssociationDefinitionModel> assocDefs, 190 List<String> labelConfig, ViewConfigurationModel viewConfig); 191 192 AssociationTypeModel newAssociationTypeModel(String uri, String value, String dataTypeUri); 193 194 AssociationTypeModel newAssociationTypeModel(JSONObject assocType); 195 196 197 198 // === AssociationDefinitionModel === 199 200 AssociationDefinitionModel newAssociationDefinitionModel(long id, String uri, 201 String assocTypeUri, String customAssocTypeUri, 202 String parentTypeUri, String childTypeUri, 203 String parentCardinalityUri, String childCardinalityUri, 204 ViewConfigurationModel viewConfigModel); 205 206 AssociationDefinitionModel newAssociationDefinitionModel(String assocTypeUri, 207 String parentTypeUri, String childTypeUri, 208 String parentCardinalityUri, String childCardinalityUri); 209 210 AssociationDefinitionModel newAssociationDefinitionModel(String assocTypeUri, String customAssocTypeUri, 211 String parentTypeUri, String childTypeUri, 212 String parentCardinalityUri, String childCardinalityUri); 213 214 AssociationDefinitionModel newAssociationDefinitionModel(AssociationModel assoc, 215 String parentCardinalityUri, String childCardinalityUri, 216 ViewConfigurationModel viewConfigModel); 217 218 AssociationDefinitionModel newAssociationDefinitionModel(JSONObject assocDef); 219 220 221 222 // === ViewConfigurationModel === 223 224 ViewConfigurationModel newViewConfigurationModel(); 225 226 ViewConfigurationModel newViewConfigurationModel(Iterable<? extends TopicModel> configTopics); 227 228 ViewConfigurationModel newViewConfigurationModel(JSONArray configTopics); 229 230 231 232 // === Topicmaps === 233 234 TopicViewModel newTopicViewModel(TopicModel topic, ViewProperties viewProps); 235 236 AssociationViewModel newAssociationViewModel(AssociationModel assoc); 237 238 239 240 // === Facets === 241 242 FacetValueModel newFacetValueModel(String childTypeUri); 243 244 FacetValueModel newFacetValueModel(JSONObject facetValue); 245}