Class KrmsTypeServiceBase

java.lang.Object
org.kuali.rice.krad.datadictionary.validation.AttributeValidatingTypeServiceBase
org.kuali.rice.krms.impl.type.KrmsTypeServiceBase
All Implemented Interfaces:
org.kuali.rice.krms.framework.type.RemotableAttributeOwner
Direct Known Subclasses:
ActionTypeServiceBase, AgendaTypeServiceBase, PeopleFlowActionTypeService, RuleTypeServiceBase, ValidationActionTypeServiceImpl, ValidationRuleTypeServiceImpl

public abstract class KrmsTypeServiceBase extends org.kuali.rice.krad.datadictionary.validation.AttributeValidatingTypeServiceBase implements org.kuali.rice.krms.framework.type.RemotableAttributeOwner
KrmsTypeServiceBase is an abstract class providing default implementation and hooks for provisioning and validating the custom attributes of a krms type. Is should probably be mentioned that the default validation methods don't actually check anything, they just return empty error lists.
  • Nested Class Summary

    Nested classes/interfaces inherited from class org.kuali.rice.krad.datadictionary.validation.AttributeValidatingTypeServiceBase

    org.kuali.rice.krad.datadictionary.validation.AttributeValidatingTypeServiceBase.TypeAttributeDefinition, org.kuali.rice.krad.datadictionary.validation.AttributeValidatingTypeServiceBase.TypeAttributeValidationException
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    List<org.kuali.rice.core.api.uif.RemotableAttributeField>
    get the RemotableAttributeFields for the custom attributes of this krms type.
    org.kuali.rice.krad.service.DataDictionaryRemoteFieldService
     
    protected List<org.kuali.rice.krad.datadictionary.validation.AttributeValidatingTypeServiceBase.TypeAttributeDefinition>
    Gets an ordered List of AttributeValidatingTypeServiceBase.TypeAttributeDefinitions for the attributes on the KRMS type specified by the given krmsTypeId.
    protected void
    sortFields(List<org.kuali.rice.krad.datadictionary.validation.AttributeValidatingTypeServiceBase.TypeAttributeDefinition> results, Map<String,Integer> sortCodeMap)
     
    org.kuali.rice.core.api.uif.RemotableAttributeField
    translateTypeAttribute(org.kuali.rice.krms.api.repository.type.KrmsTypeAttribute inputAttribute, org.kuali.rice.krms.api.repository.type.KrmsAttributeDefinition attributeDefinition)
    Translate a KrmsTypeAttribute into a RemotableAttributeField.
    List<org.kuali.rice.core.api.uif.RemotableAttributeError>
    validateAttributes(String krmsTypeId, Map<String,String> attributes)
     
    List<org.kuali.rice.core.api.uif.RemotableAttributeError>
    validateAttributesAgainstExisting(String krmsTypeId, Map<String,String> newAttributes, Map<String,String> oldAttributes)
     
    protected List<org.kuali.rice.core.api.uif.RemotableAttributeError>
    validateNonDataDictionaryAttribute(org.kuali.rice.core.api.uif.RemotableAttributeField attr, String key, String value)
     

    Methods inherited from class org.kuali.rice.krad.datadictionary.validation.AttributeValidatingTypeServiceBase

    createErrorString, extractErrorsFromGlobalVariablesErrorMap, getAttributeErrorLabel, getAttributeFormatter, getAttributeValidatingExpression, getConfigurationService, getDataDictionaryService, getDictionaryValidationService, validateAttributeFormat, validateAttributeRequired, validateDataDictionaryAttribute, validatePrimitiveAttributeFromDescriptor, validateReferencesExistAndActive

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • KrmsTypeServiceBase

      public KrmsTypeServiceBase()
  • Method Details

    • getAttributeFields

      public List<org.kuali.rice.core.api.uif.RemotableAttributeField> getAttributeFields(String krmsTypeId) throws org.kuali.rice.core.api.exception.RiceIllegalArgumentException

      get the RemotableAttributeFields for the custom attributes of this krms type. This implementation will (by default) return any attributes mapped to the type via KrmsTypeAttributeBo. If there is is a component name defined on the related KrmsAttributeDefinitionBo then that will be used to generate the RemotableAttributeField. If not, then a simple text input will be produced.

      An extending class can also override the translateTypeAttribute(org.kuali.rice.krms.api.repository.type.KrmsTypeAttribute, org.kuali.rice.krms.api.repository.type.KrmsAttributeDefinition) method which is called from here, and within it hand create the RemotableAttributeField for a certain attribute.

      Also handy for extenders to know, this method delegates to getTypeAttributeDefinitions(String) and then pulls out the RemotableAttributeFields from the returned AttributeValidatingTypeServiceBase.TypeAttributeDefinitions

      Specified by:
      getAttributeFields in interface org.kuali.rice.krms.framework.type.RemotableAttributeOwner
      Parameters:
      krmsTypeId - the people flow type identifier. Must not be null or blank.
      Returns:
      Throws:
      org.kuali.rice.core.api.exception.RiceIllegalArgumentException
    • getTypeAttributeDefinitions

      protected List<org.kuali.rice.krad.datadictionary.validation.AttributeValidatingTypeServiceBase.TypeAttributeDefinition> getTypeAttributeDefinitions(String krmsTypeId)
      Gets an ordered List of AttributeValidatingTypeServiceBase.TypeAttributeDefinitions for the attributes on the KRMS type specified by the given krmsTypeId.
      Specified by:
      getTypeAttributeDefinitions in class org.kuali.rice.krad.datadictionary.validation.AttributeValidatingTypeServiceBase
      Parameters:
      krmsTypeId - the ID of the KRMS Type whose attributes we are getting.
      Returns:
      a List of type-agnostic AttributeValidatingTypeServiceBase.TypeAttributeDefinitions
      See Also:
      • AttributeValidatingTypeServiceBase
    • sortFields

      protected void sortFields(List<org.kuali.rice.krad.datadictionary.validation.AttributeValidatingTypeServiceBase.TypeAttributeDefinition> results, Map<String,Integer> sortCodeMap)
    • validateAttributes

      public List<org.kuali.rice.core.api.uif.RemotableAttributeError> validateAttributes(String krmsTypeId, Map<String,String> attributes) throws org.kuali.rice.core.api.exception.RiceIllegalArgumentException
      Specified by:
      validateAttributes in interface org.kuali.rice.krms.framework.type.RemotableAttributeOwner
      Overrides:
      validateAttributes in class org.kuali.rice.krad.datadictionary.validation.AttributeValidatingTypeServiceBase
      Throws:
      org.kuali.rice.core.api.exception.RiceIllegalArgumentException
    • validateAttributesAgainstExisting

      public List<org.kuali.rice.core.api.uif.RemotableAttributeError> validateAttributesAgainstExisting(String krmsTypeId, Map<String,String> newAttributes, Map<String,String> oldAttributes) throws org.kuali.rice.core.api.exception.RiceIllegalArgumentException
      Specified by:
      validateAttributesAgainstExisting in interface org.kuali.rice.krms.framework.type.RemotableAttributeOwner
      Throws:
      org.kuali.rice.core.api.exception.RiceIllegalArgumentException
    • translateTypeAttribute

      public org.kuali.rice.core.api.uif.RemotableAttributeField translateTypeAttribute(org.kuali.rice.krms.api.repository.type.KrmsTypeAttribute inputAttribute, org.kuali.rice.krms.api.repository.type.KrmsAttributeDefinition attributeDefinition)
      Translate a KrmsTypeAttribute into a RemotableAttributeField. Override this method to provide custom translation of certain attributes.
      Parameters:
      inputAttribute - the KrmsTypeAttribute to translate
      attributeDefinition - the KrmsAttributeDefinition for the given inputAttribute
      Returns:
      a RemotableAttributeField for the given inputAttribute
    • getDataDictionaryRemoteFieldService

      public org.kuali.rice.krad.service.DataDictionaryRemoteFieldService getDataDictionaryRemoteFieldService()
      Overrides:
      getDataDictionaryRemoteFieldService in class org.kuali.rice.krad.datadictionary.validation.AttributeValidatingTypeServiceBase
    • validateNonDataDictionaryAttribute

      protected List<org.kuali.rice.core.api.uif.RemotableAttributeError> validateNonDataDictionaryAttribute(org.kuali.rice.core.api.uif.RemotableAttributeField attr, String key, String value)
      Specified by:
      validateNonDataDictionaryAttribute in class org.kuali.rice.krad.datadictionary.validation.AttributeValidatingTypeServiceBase