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(JSONObject topic); 061 062 063 064 // === AssociationModel === 065 066 AssociationModel newAssociationModel(long id, String uri, String typeUri, RoleModel roleModel1, 067 RoleModel roleModel2, SimpleValue value, ChildTopicsModel childTopics); 068 069 AssociationModel newAssociationModel(String typeUri, RoleModel roleModel1, RoleModel roleModel2); 070 071 AssociationModel newAssociationModel(String typeUri, RoleModel roleModel1, RoleModel roleModel2, 072 ChildTopicsModel childTopics); 073 074 AssociationModel newAssociationModel(); 075 076 AssociationModel newAssociationModel(ChildTopicsModel childTopics); 077 078 AssociationModel newAssociationModel(long id, String uri, String typeUri, RoleModel roleModel1, 079 RoleModel roleModel2); 080 081 AssociationModel newAssociationModel(AssociationModel assoc); 082 083 AssociationModel newAssociationModel(JSONObject assoc); 084 085 086 087 // === ChildTopicsModel === 088 089 ChildTopicsModel newChildTopicsModel(); 090 091 ChildTopicsModel newChildTopicsModel(JSONObject values); 092 093 /** 094 * Utility. 095 */ 096 String childTypeUri(String assocDefUri); 097 098 099 100 // === TopicRoleModel === 101 102 TopicRoleModel newTopicRoleModel(long topicId, String roleTypeUri); 103 104 TopicRoleModel newTopicRoleModel(String topicUri, String roleTypeUri); 105 106 TopicRoleModel newTopicRoleModel(JSONObject topicRoleModel); 107 108 109 110 // === AssociationRoleModel === 111 112 AssociationRoleModel newAssociationRoleModel(long assocId, String roleTypeUri); 113 114 AssociationRoleModel newAssociationRoleModel(JSONObject assocRoleModel); 115 116 117 118 // === RelatedTopicModel === 119 120 RelatedTopicModel newRelatedTopicModel(long topicId); 121 122 RelatedTopicModel newRelatedTopicModel(long topicId, AssociationModel relatingAssoc); 123 124 RelatedTopicModel newRelatedTopicModel(String topicUri); 125 126 RelatedTopicModel newRelatedTopicModel(String topicUri, AssociationModel relatingAssoc); 127 128 RelatedTopicModel newRelatedTopicModel(String topicTypeUri, SimpleValue value); 129 130 RelatedTopicModel newRelatedTopicModel(String topicTypeUri, ChildTopicsModel childTopics); 131 132 RelatedTopicModel newRelatedTopicModel(TopicModel topic); 133 134 RelatedTopicModel newRelatedTopicModel(TopicModel topic, AssociationModel relatingAssoc); 135 136 137 138 // === RelatedAssociationModel === 139 140 RelatedAssociationModel newRelatedAssociationModel(AssociationModel assoc, AssociationModel relatingAssoc); 141 142 143 144 // === TopicReferenceModel === 145 146 // TODO: make internal? 147 148 TopicReferenceModel newTopicReferenceModel(long topicId); 149 150 TopicReferenceModel newTopicReferenceModel(long topicId, AssociationModel relatingAssoc); 151 152 TopicReferenceModel newTopicReferenceModel(String topicUri); 153 154 TopicReferenceModel newTopicReferenceModel(String topicUri, AssociationModel relatingAssoc); 155 156 TopicReferenceModel newTopicReferenceModel(long topicId, ChildTopicsModel relatingAssocChildTopics); 157 158 TopicReferenceModel newTopicReferenceModel(String topicUri, ChildTopicsModel relatingAssocChildTopics); 159 160 161 162 // === TopicDeletionModel === 163 164 // TODO: make internal? 165 166 TopicDeletionModel newTopicDeletionModel(long topicId); 167 168 TopicDeletionModel newTopicDeletionModel(String topicUri); 169 170 171 172 // === TopicTypeModel === 173 174 TopicTypeModel newTopicTypeModel(TopicModel typeTopic, String dataTypeUri, 175 List<IndexMode> indexModes, List<AssociationDefinitionModel> assocDefs, 176 List<String> labelConfig, ViewConfigurationModel viewConfig); 177 178 TopicTypeModel newTopicTypeModel(String uri, String value, String dataTypeUri); 179 180 TopicTypeModel newTopicTypeModel(JSONObject topicType); 181 182 183 184 // === AssociationTypeModel === 185 186 AssociationTypeModel newAssociationTypeModel(TopicModel typeTopic, String dataTypeUri, 187 List<IndexMode> indexModes, List<AssociationDefinitionModel> assocDefs, 188 List<String> labelConfig, ViewConfigurationModel viewConfig); 189 190 AssociationTypeModel newAssociationTypeModel(String uri, String value, String dataTypeUri); 191 192 AssociationTypeModel newAssociationTypeModel(JSONObject assocType); 193 194 195 196 // === AssociationDefinitionModel === 197 198 AssociationDefinitionModel newAssociationDefinitionModel(long id, String uri, 199 String assocTypeUri, String customAssocTypeUri, 200 String parentTypeUri, String childTypeUri, 201 String parentCardinalityUri, String childCardinalityUri, 202 ViewConfigurationModel viewConfigModel); 203 204 AssociationDefinitionModel newAssociationDefinitionModel(String assocTypeUri, 205 String parentTypeUri, String childTypeUri, 206 String parentCardinalityUri, String childCardinalityUri); 207 208 AssociationDefinitionModel newAssociationDefinitionModel(String assocTypeUri, String customAssocTypeUri, 209 String parentTypeUri, String childTypeUri, 210 String parentCardinalityUri, String childCardinalityUri); 211 212 AssociationDefinitionModel newAssociationDefinitionModel(AssociationModel assoc, 213 String parentCardinalityUri, String childCardinalityUri, 214 ViewConfigurationModel viewConfigModel); 215 216 AssociationDefinitionModel newAssociationDefinitionModel(JSONObject assocDef); 217 218 219 220 // === ViewConfigurationModel === 221 222 ViewConfigurationModel newViewConfigurationModel(); 223 224 ViewConfigurationModel newViewConfigurationModel(Iterable<? extends TopicModel> configTopics); 225 226 ViewConfigurationModel newViewConfigurationModel(JSONArray configTopics); 227 228 229 230 // === Topicmaps === 231 232 TopicViewModel newTopicViewModel(TopicModel topic, ViewProperties viewProps); 233 234 AssociationViewModel newAssociationViewModel(AssociationModel assoc); 235 236 237 238 // === Facets === 239 240 FacetValueModel newFacetValueModel(String childTypeUri); 241 242 FacetValueModel newFacetValueModel(JSONObject facetValue); 243}