001/** 002 * Copyright 2005-2016 The Kuali Foundation 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016package org.kuali.rice.krms.api.repository.type; 017 018import org.kuali.rice.core.api.exception.RiceIllegalArgumentException; 019import org.kuali.rice.core.api.exception.RiceIllegalStateException; 020import org.kuali.rice.krms.api.KrmsConstants; 021import org.springframework.cache.annotation.CacheEvict; 022import org.springframework.cache.annotation.Cacheable; 023 024import javax.jws.WebMethod; 025import javax.jws.WebParam; 026import javax.jws.WebResult; 027import javax.jws.WebService; 028import javax.jws.soap.SOAPBinding; 029import javax.xml.bind.annotation.XmlElement; 030import javax.xml.bind.annotation.XmlElementWrapper; 031import java.util.List; 032import org.kuali.rice.krms.api.repository.typerelation.RelationshipType; 033import org.kuali.rice.krms.api.repository.typerelation.TypeTypeRelation; 034 035 036@WebService(name = "KRMSTypeService", targetNamespace = KrmsConstants.Namespaces.KRMS_NAMESPACE_2_0) 037@SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED) 038public interface KrmsTypeRepositoryService { 039 040 public static final String CONTEXT_SERVICE_NAME = "contextTypeService"; 041 public static final String AGENDA_SERVICE_NAME = "agendaTypeService"; 042 public static final String RULE_SERVICE_NAME = "ruleTypeService"; 043 public static final String SIMPLE_PROPOSITION_SERVICE_NAME = "simplePropositionTypeService"; 044 public static final String COMPOUND_PROPOSITION_SERVICE_NAME = "compoundPropositionTypeService"; 045 public static final String TERM_PROPOSITION_PARAMETER_SERVICE_NAME = "termPropositionParameterTypeService"; 046 public static final String OPERATOR_PROPOSITION_PARAMETER_SERVICE_NAME = "operatorPropositionParameterTypeService"; 047 public static final String CONSTANT_VALUE_PROPOSITION_PARAMETER_SERVICE_NAME = "constantPropositionParameterTypeService"; 048 public static final String FUNCTION_PROPOSITION_PARAMETER_SERVICE_NAME = "functionPropositionParameterTypeService"; 049 public static final String[] PROPOSITION_SERVICE_NAMES = {SIMPLE_PROPOSITION_SERVICE_NAME, 050 COMPOUND_PROPOSITION_SERVICE_NAME}; 051 public static final String[] PROPOSITION_PARAMETER_SERVICE_NAMES = {TERM_PROPOSITION_PARAMETER_SERVICE_NAME, 052 OPERATOR_PROPOSITION_PARAMETER_SERVICE_NAME, 053 CONSTANT_VALUE_PROPOSITION_PARAMETER_SERVICE_NAME, 054 FUNCTION_PROPOSITION_PARAMETER_SERVICE_NAME}; 055 public static final String TERM_PARAMETER_SERVICE_NAME = "termParameterTypeService"; 056 057 //// 058 //// type methods 059 //// 060 /** 061 * This will create a {@link KrmsTypeDefinition} exactly like the parameter passed in. 062 * 063 * @param krmsType - KrmsType 064 * @throws IllegalArgumentException if the krmsType is 065 * + 066 * @throws IllegalStateException if the KrmsType already exists in the system 067 */ 068 @WebMethod(operationName="createKrmsType") 069 @WebResult(name = "krmsType") 070 @CacheEvict(value={KrmsTypeDefinition.Cache.NAME}, allEntries = true) 071 KrmsTypeDefinition createKrmsType(@WebParam(name = "krmsType") KrmsTypeDefinition krmsType) 072 throws RiceIllegalArgumentException, RiceIllegalStateException; 073 074 /** 075 * This will update an existing {@link KrmsTypeDefinition} 076 * 077 * @param krmsType - KrmsType 078 * @throws IllegalArgumentException if the krmsType is null 079 * @throws IllegalStateException if the KrmsType does not exist in the system 080 */ 081 @WebMethod(operationName="updateKrmsType") 082 @WebResult(name = "krmsType") 083 @CacheEvict(value={KrmsTypeDefinition.Cache.NAME}, allEntries = true) 084 KrmsTypeDefinition updateKrmsType(@WebParam(name = "krmsType") KrmsTypeDefinition krmsType) 085 throws RiceIllegalArgumentException, RiceIllegalStateException; 086 087 /** 088 * Lookup a krms type based on the given id. 089 * 090 * @param id the given KRMS type id 091 * @return a KRMS KrmsType object with the given id. A null reference is returned if an invalid or 092 * non-existant id is supplied. 093 */ 094 @WebMethod(operationName = "getTypeById") 095 @WebResult(name = "type") 096 @Cacheable(value= KrmsTypeDefinition.Cache.NAME, key="'id=' + #p0") 097 KrmsTypeDefinition getTypeById(@WebParam(name = "id") String id) 098 throws RiceIllegalArgumentException; 099 100 /** 101 * Get a krms type object based on name and namespace 102 * 103 * @param namespaceCode the given type namespace 104 * @param name the given type name 105 * 106 * @return A krms type object with the given namespace and name if one with that name and namespace 107 * exists. Otherwise, null is returned. 108 * 109 * @throws RiceIllegalArgumentException if the given namespaceCode or name is a null or blank value 110 * @throws RiceIllegalStateException if multiple krms types exist with the same name and namespace 111 */ 112 @WebMethod(operationName = "getTypeByName") 113 @WebResult(name = "type") 114 @Cacheable(value= KrmsTypeDefinition.Cache.NAME, key="'namespaceCode=' + #p0 + '|' + 'name=' + #p1") 115 KrmsTypeDefinition getTypeByName( 116 @WebParam(name = "namespaceCode") String namespaceCode, 117 @WebParam(name = "name") String name) 118 throws RiceIllegalArgumentException, RiceIllegalStateException; 119 120 /** 121 * Returns all KRMS types that for a given namespace. 122 * 123 * @return all KRMS types for a namespace 124 * @throws IllegalArgumentException if the given namespaceCode is a null or blank value 125 */ 126 @WebMethod(operationName = "findAllTypesByNamespace") 127 @XmlElementWrapper(name = "namespaceTypes", required = true) 128 @XmlElement(name = "namespaceType", required = false) 129 @WebResult(name = "namespaceTypes") 130 @Cacheable(value= KrmsTypeDefinition.Cache.NAME, key="'allByNamespaceCode=' + #p0") 131 List<KrmsTypeDefinition> findAllTypesByNamespace( 132 @WebParam(name = "namespaceCode") String namespaceCode) 133 throws RiceIllegalArgumentException; 134 135 /** 136 * Returns all KRMS types 137 * 138 * @return all KRMS types 139 */ 140 @WebMethod(operationName = "findAllTypes") 141 @XmlElementWrapper(name = "types", required = true) 142 @XmlElement(name = "type", required = false) 143 @WebResult(name = "types") 144 @Cacheable(value= KrmsTypeDefinition.Cache.NAME, key="'all'") 145 List<KrmsTypeDefinition> findAllTypes(); 146 147 /** 148 * Returns all agenda types for the given contextId. 149 * 150 * @param contextId the id of the context 151 * @return all agenda types for the given contextId 152 * @throws IllegalArgumentException if the given contextId is a null or blank value 153 */ 154 @WebMethod(operationName = "findAllAgendaTypesByContextId") 155 @XmlElementWrapper(name = "agendaTypes", required = true) 156 @XmlElement(name = "agendaType", required = false) 157 @WebResult(name = "agendaTypes") 158 @Cacheable(value= KrmsTypeDefinition.Cache.NAME, key="'{AgendaType}contextId=' + #p0") 159 List<KrmsTypeDefinition> findAllAgendaTypesByContextId( 160 @WebParam(name="contextId") String contextId) 161 throws RiceIllegalArgumentException; 162 163 /** 164 * Return the agenda type by agendaItemId for the given contextId. 165 * 166 * @param agendaTypeId the id of the agendaType 167 * @param contextId the id of the context 168 * @return agendaType or null if none is found 169 * @throws IllegalArgumentException if the given agendaTypeId or contextId is a null or blank value 170 */ 171 @WebMethod(operationName = "getAgendaTypeByAgendaTypeIdAndContextId") 172 @WebResult(name = "type") 173 @Cacheable(value= KrmsTypeDefinition.Cache.NAME, key="'agendaTypeId=' + #p0 + '|' + 'contextId=' + #p1") 174 KrmsTypeDefinition getAgendaTypeByAgendaTypeIdAndContextId( 175 @WebParam(name="agendaTypeId") String agendaTypeId, 176 @WebParam(name="contextId") String contextId) 177 throws RiceIllegalArgumentException; 178 179 /** 180 * Returns all rule types for the given contextId. 181 * 182 * @param contextId the id of the context 183 * @return all rule types for the given contextId 184 * @throws IllegalArgumentException if the given contextId is a null or blank value 185 */ 186 @WebMethod(operationName = "findAllRuleTypesByContextId") 187 @XmlElementWrapper(name = "ruleTypes", required = true) 188 @XmlElement(name = "ruleType", required = false) 189 @WebResult(name = "ruleTypes") 190 @Cacheable(value= KrmsTypeDefinition.Cache.NAME, key="'{RuleType}contextId=' + #p0") 191 List<KrmsTypeDefinition> findAllRuleTypesByContextId( 192 @WebParam(name="contextId") String contextId) 193 throws RiceIllegalArgumentException; 194 195 /** 196 * Return the rule type by ruleItemId for the given contextId. 197 * 198 * @param ruleTypeId the id of the ruleType 199 * @param contextId the id of the context 200 * @return ruleType or null if none is found 201 * @throws IllegalArgumentException if the given ruleTypeId or contextId is a null or blank value 202 */ 203 @WebMethod(operationName = "getRuleTypeByRuleTypeIdAndContextId") 204 @WebResult(name = "ruleType") 205 @Cacheable(value= KrmsTypeDefinition.Cache.NAME, key="'ruleTypeId=' + #p0 + '|' + 'contextId=' + #p1") 206 KrmsTypeDefinition getRuleTypeByRuleTypeIdAndContextId( 207 @WebParam(name="ruleTypeId") String ruleTypeId, 208 @WebParam(name="contextId") String contextId) 209 throws RiceIllegalArgumentException; 210 211 /** 212 * Returns all action types for the given contextId. 213 * 214 * @param contextId the id of the context 215 * @return all action types for the given contextId 216 * @throws IllegalArgumentException if the given contextId is a null or blank value 217 */ 218 @WebMethod(operationName = "findAllActionTypesByContextId") 219 @XmlElementWrapper(name = "actionTypes", required = true) 220 @XmlElement(name = "actionType", required = false) 221 @WebResult(name = "actionTypes") 222 @Cacheable(value= KrmsTypeDefinition.Cache.NAME, key="'{ActionType}contextId=' + #p0") 223 List<KrmsTypeDefinition> findAllActionTypesByContextId( 224 @WebParam(name="contextId") String contextId) 225 throws RiceIllegalArgumentException; 226 227 /** 228 * Return the action type by actionItemId for the given contextId. 229 * 230 * @param actionTypeId the id of the actionType 231 * @param contextId the id of the context 232 * @return actionType or null if none is found 233 * @throws IllegalArgumentException if the given actionTypeId or contextId is a null or blank value 234 */ 235 @WebMethod(operationName = "getActionTypeByActionTypeIdAndContextId") 236 @WebResult(name = "actionType") 237 @Cacheable(value= KrmsTypeDefinition.Cache.NAME, key="'actionTypeId=' + #p0 + '|' + 'contextId=' + #p1") 238 KrmsTypeDefinition getActionTypeByActionTypeIdAndContextId( 239 @WebParam(name="actionTypeId") String actionTypeId, 240 @WebParam(name="contextId") String contextId) 241 throws RiceIllegalArgumentException; 242 243 /** 244 * Retrieves an attribute definition for the given id. 245 * 246 * @param attributeDefinitionId the id of the attribute definition to retrieve 247 * 248 * @return the attribute definition matching the given id, or null if no corresponding attribute definition could 249 * be found with the given id value 250 * @throws IllegalArgumentException if the given attributeDefinitionId is a null or blank value 251 */ 252 @WebMethod(operationName = "getAttributeDefinitionById") 253 @WebResult(name = "attribute") 254 @Cacheable(value= KrmsAttributeDefinition.Cache.NAME, key="'attributeDefinitionId=' + #p0") 255 KrmsAttributeDefinition getAttributeDefinitionById(@WebParam(name = "attributeDefinitionId") String attributeDefinitionId) 256 throws RiceIllegalArgumentException; 257 258 /** 259 * Retrieves an attribute definition for the given namespace code and name. 260 * 261 * @param namespaceCode the namespace under which to locate the attribute definition 262 * @param name the name of the attribute definition to retrieve 263 * 264 * @return the attribute definition matching the give namespace code and name, or null if no corresponding attribute 265 * definition could be located 266 * 267 * @throws RiceIllegalArgumentException if the given namespaceCode or name is a null or blank value 268 */ 269 @WebMethod(operationName = "getAttributeDefinitionByName") 270 @WebResult(name = "attribute") 271 @Cacheable(value= KrmsAttributeDefinition.Cache.NAME, key="'namespaceCode=' + #p0 + '|' + 'name=' + #p1") 272 KrmsAttributeDefinition getAttributeDefinitionByName( 273 @WebParam(name = "namespaceCode") String namespaceCode, 274 @WebParam(name = "name") String name) throws RiceIllegalArgumentException; 275 276 //// 277 //// type type relation methods 278 //// 279 /** 280 * This will create a {@link TypeTypeRelation} exactly like the parameter 281 * passed in. 282 * 283 * @param typeTypeRelation The TypeTypeRelation to create. 284 * @throws IllegalArgumentException if the TypeTypeRelation is null. 285 * @throws IllegalStateException if the TypeTypeRelation already exists in 286 * the system. 287 * @return a {@link TypeTypeRelation} exactly like the parameter passed in. 288 * 289 */ 290 @WebMethod(operationName = "createTypeTypeRelation") 291 @WebResult(name = "typeTypeRelation") 292 TypeTypeRelation createTypeTypeRelation(@WebParam(name = "typeTypeRelation") TypeTypeRelation typeTypeRelation) 293 throws RiceIllegalArgumentException; 294 295 /** 296 * Retrieves a TypeTypeRelation from the repository based on the given id. 297 * 298 * @param typeTypeRelationId to retrieve. 299 * @return a {@link TypeTypeRelation} identified by the given id. A null 300 * reference is returned if an invalid or non-existent id is supplied. 301 * 302 */ 303 @WebMethod(operationName = "getTypeTypeRelation") 304 @WebResult(name = "typeTypeRelation") 305 TypeTypeRelation getTypeTypeRelation(@WebParam(name = "typeTypeRelationId") String typeTypeRelationId) 306 throws RiceIllegalArgumentException; 307 308 /** 309 * This will update an existing {@link TypeTypeRelation}. 310 * 311 * @param typeTypeRelation The TypeTypeRelation to update. 312 * @throws IllegalArgumentException if the TypeTypeRelation is null. 313 * @throws IllegalStateException if the TypeTypeRelation does not exists in 314 * the system. 315 * 316 */ 317 @WebMethod(operationName = "updateTypeTypeRelation") 318 void updateTypeTypeRelation(@WebParam(name = "typeTypeRelation") TypeTypeRelation typeTypeRelation) 319 throws RiceIllegalArgumentException; 320 321 /** 322 * Delete the {@link TypeTypeRelation} with the given id. 323 * 324 * @param typeTypeRelationId to delete. 325 * @throws IllegalArgumentException if the TypeTypeRelation is null. 326 * @throws IllegalStateException if the TypeTypeRelation does not exists in 327 * the system 328 * 329 */ 330 @WebMethod(operationName = "deleteTypeTypeRelation") 331 void deleteTypeTypeRelation(@WebParam(name = "typeTypeRelationId") String typeTypeRelationId) 332 throws RiceIllegalArgumentException; 333 334 /** 335 * find type type relations by from type 336 * 337 * @param fromTypeId to search on 338 * @return relations that match the from type 339 */ 340 @WebMethod(operationName = "findTypeTypeRelationsByFromType") 341 @XmlElementWrapper(name = "typeTypeRelations", required = true) 342 @XmlElement(name = "typeTypeRelation", required = false) 343 @WebResult(name = "typeTypeRelations") 344 List<TypeTypeRelation> findTypeTypeRelationsByFromType(@WebParam(name = "fromTypeId") String fromTypeId) 345 throws RiceIllegalArgumentException; 346 347 /** 348 * find type type relations by To type 349 * 350 * @param toTypeId to type to search on 351 * @return types with that type in the 2nd position in the relationship 352 */ 353 @WebMethod(operationName = "findTypeTypeRelationsByToType") 354 @XmlElementWrapper(name = "typeTypeRelations", required = true) 355 @XmlElement(name = "typeTypeRelation", required = false) 356 @WebResult(name = "typeTypeRelations") 357 List<TypeTypeRelation> findTypeTypeRelationsByToType(@WebParam(name = "toTypeId") String toTypeId) 358 throws RiceIllegalArgumentException; 359 360 /** 361 * find type type relations by relationship type 362 * 363 * @param relationshipType to search on 364 * @return type type relations given the specified type 365 */ 366 @WebMethod(operationName = "findTypeTypeRelationsByRelationshipType") 367 @XmlElementWrapper(name = "typeTypeRelations", required = true) 368 @XmlElement(name = "typeTypeRelation", required = false) 369 @WebResult(name = "typeTypeRelations") 370 List<TypeTypeRelation> findTypeTypeRelationsByRelationshipType(@WebParam(name = "relationshipType") RelationshipType relationshipType) 371 throws RiceIllegalArgumentException; 372 373 /** 374 * Returns all KRMS types that for a given serviceName 375 * 376 * @return all KRMS types for a serviceName 377 * @throws IllegalArgumentException if the given serviceName is a null or 378 * blank value 379 */ 380 @WebMethod(operationName = "findAllTypesByServiceName") 381 @XmlElementWrapper(name = "serviceNameTypes", required = true) 382 @XmlElement(name = "serviceNameType", required = false) 383 @WebResult(name = "serviceNameTypes") 384 // TODO: put in CACHING if we want/need it 385// @Cacheable(value= KrmsTypeDefinition.Cache.NAME, key="'allByNamespaceCode=' + #p0") 386 List<KrmsTypeDefinition> findAllTypesByServiceName( 387 @WebParam(name = "serviceName") String serviceName) 388 throws RiceIllegalArgumentException; 389 390 /** 391 * find all context types 392 * 393 * @return types that are valid for contexts 394 */ 395 @WebMethod(operationName = "findAllContextTypes") 396 @XmlElementWrapper(name = "contextTypes", required = true) 397 @XmlElement(name = "contextType", required = false) 398 @WebResult(name = "contextTypes") 399 List<KrmsTypeDefinition> findAllContextTypes() 400 throws RiceIllegalArgumentException; 401 402 /** 403 * find all agenda types 404 * 405 * @return types that are valid for agendas 406 */ 407 @WebMethod(operationName = "findAllAgendaTypes") 408 @XmlElementWrapper(name = "agendaTypes", required = true) 409 @XmlElement(name = "agendaType", required = false) 410 @WebResult(name = "agendaTypes") 411 List<KrmsTypeDefinition> findAllAgendaTypes() 412 throws RiceIllegalArgumentException; 413 414 /** 415 * find all agenda types for context type 416 * 417 * @param contextTypeId to search on 418 * @return types that are valid for agendas 419 */ 420 @WebMethod(operationName = "findAgendaTypesForContextType") 421 @XmlElementWrapper(name = "agendaTypes", required = true) 422 @XmlElement(name = "agendaType", required = false) 423 @WebResult(name = "agendaTypes") 424 List<KrmsTypeDefinition> findAgendaTypesForContextType(@WebParam(name = "contextTypeId") String contextTypeId) 425 throws RiceIllegalArgumentException; 426 427 /** 428 * find all agenda types for context type 429 * 430 * @param agendaTypeId to search on 431 * @return types that are valid for agendas 432 */ 433 @WebMethod(operationName = "findAgendaTypesForAgendaType") 434 @XmlElementWrapper(name = "agendaTypes", required = true) 435 @XmlElement(name = "agendaType", required = false) 436 @WebResult(name = "agendaTypes") 437 List<KrmsTypeDefinition> findAgendaTypesForAgendaType(@WebParam(name = "agendaTypeId") String agendaTypeId) 438 throws RiceIllegalArgumentException; 439 440 /** 441 * find all rule types 442 * 443 * @return types that are valid for rules 444 */ 445 @WebMethod(operationName = "findAllRuleTypes") 446 @XmlElementWrapper(name = "ruleTypes", required = true) 447 @XmlElement(name = "ruleType", required = false) 448 @WebResult(name = "ruleTypes") 449 List<KrmsTypeDefinition> findAllRuleTypes() 450 throws RiceIllegalArgumentException; 451 452 /** 453 * find the rule types for the specified agenda type 454 * 455 * @param agendaTypeId to search on 456 * @return types that are valid for rules 457 */ 458 @WebMethod(operationName = "findRuleTypesForAgendaType") 459 @XmlElementWrapper(name = "ruleTypes", required = true) 460 @XmlElement(name = "ruleType", required = false) 461 @WebResult(name = "ruleTypes") 462 List<KrmsTypeDefinition> findRuleTypesForAgendaType(@WebParam(name = "agendaTypeId") String agendaTypeId) 463 throws RiceIllegalArgumentException; 464 465 /** 466 * find all Proposition types 467 * 468 * @return types that are valid for propositions 469 */ 470 @WebMethod(operationName = "findAllPropositionTypes") 471 @XmlElementWrapper(name = "propositionTypes", required = true) 472 @XmlElement(name = "propositionType", required = false) 473 @WebResult(name = "propositionTypes") 474 List<KrmsTypeDefinition> findAllPropositionTypes() 475 throws RiceIllegalArgumentException; 476 477 /** 478 * find all Proposition types for the specified rule type 479 * 480 * @param ruleTypeId to search on 481 * @return types that are valid for propositions 482 */ 483 @WebMethod(operationName = "findPropositionTypesForRuleType") 484 @XmlElementWrapper(name = "propositionTypes", required = true) 485 @XmlElement(name = "propositionType", required = false) 486 @WebResult(name = "propositionTypes") 487 List<KrmsTypeDefinition> findPropositionTypesForRuleType(@WebParam(name = "ruleTypeId") String ruleTypeId) 488 throws RiceIllegalArgumentException; 489 490 /** 491 * find all Proposition Parameter types 492 * 493 * @return types that are valid for proposition parameters 494 */ 495 @WebMethod(operationName = "findAllPropositionParameterTypes") 496 @XmlElementWrapper(name = "propositionParameterTypes", required = true) 497 @XmlElement(name = "propositionParameterType", required = false) 498 @WebResult(name = "propositionParameterTypes") 499 List<KrmsTypeDefinition> findAllPropositionParameterTypes() 500 throws RiceIllegalArgumentException; 501 502 /** 503 * find Proposition Parameter types for the specified proposition type 504 * 505 * @param propositionTypeId to search on 506 * @return types that are valid for proposition parameters 507 */ 508 @WebMethod(operationName = "findPropositionParameterTypesForPropositionType") 509 @XmlElementWrapper(name = "propositionParameterTypes", required = true) 510 @XmlElement(name = "propositionParameterType", required = false) 511 @WebResult(name = "propositionParameterTypes") 512 List<KrmsTypeDefinition> findPropositionParameterTypesForPropositionType(@WebParam(name = "propositionTypeId") String propositionTypeId) 513 throws RiceIllegalArgumentException; 514 515 516 /** 517 * find term parameter types for the given Term based Proposition Parameter type 518 * 519 * @param termPropositionParameterTypeId to search on 520 * @return types that are valid as term parameters 521 */ 522 @WebMethod(operationName = "findTermParameterTypesForTermPropositionParameterType") 523 @XmlElementWrapper(name = "termParameterTypes", required = true) 524 @XmlElement(name = "termParameterType", required = false) 525 @WebResult(name = "termParameterTypes") 526 List<KrmsTypeDefinition> findTermParameterTypesForTermPropositionParameterType(@WebParam(name = "termPropositionParameterTypeId") String termPropositionParameterTypeId) 527 throws RiceIllegalArgumentException; 528 529}