Class DefaultAnnotationValidator

java.lang.Object
name.matthewgreet.strutscommons.util.DefaultAnnotationValidator
All Implemented Interfaces:
AnnotationValidatior

public class DefaultAnnotationValidator extends Object implements AnnotationValidatior
  • Constructor Details

    • DefaultAnnotationValidator

      public DefaultAnnotationValidator()
  • Method Details

    • adjust

      protected <T> String adjust() throws IllegalArgumentException, IllegalAccessException

      Invokes adjuster and returns result.

      Can access all InterceptorContext properties and FieldContext property set 3 and lower.

      Throws:
      IllegalArgumentException
      IllegalAccessException
    • categoriseFields

      protected void categoriseFields(Collection<Field> formFields)

      Sets how form fields should be converted (InterceptorContext setting property set 4).

      Can access InterceptorContext property set 3 and lower.

    • checkConversionMessage

      protected <T> void checkConversionMessage(ConversionResult<T> conversionResult)

      Checks if conversion results means a message must be written and writes appropriate type if needed.

      Can access all InterceptorContext properties and FieldContext property set 4 and lower.

    • checkListConversionMessage

      protected <T> void checkListConversionMessage(ConversionResult<T> conversionResult)

      Checks if list conversion results means a message must be written and writes appropriate type if needed.

      Can access all InterceptorContext properties and FieldContext property set 4 and lower.

    • checkListPostConversionMessage

      protected <T> void checkListPostConversionMessage(ValidationResult validationResult)
      Checks if conversion results means a message must be written and writes appropriate type if needed.

      Can access all InterceptorContext properties and FieldContext property set 4 and lower.

    • checkNonConversionMessage

      protected <T> void checkNonConversionMessage(ValidationResult validationResult)

      Checks if non-conversion validation results means a message must be written and writes appropriate type if needed.

      Can access all InterceptorContext properties and FieldContext property set 4 and lower.

    • checkPostConversionMessage

      protected <T> void checkPostConversionMessage(ValidationResult validationResult)
      Checks if conversion results means a message must be written and writes appropriate type if needed.

      Can access all InterceptorContext properties and FieldContext property set 4 and lower.

    • convert

      protected <T> ConversionResult<T> convert()

      Invokes converter and returns result, or returns skipped result if the adjusted formatted value is empty string and the converter does not convert them.

      Can access all InterceptorContext properties and FieldContext property set 4 and lower.

    • endFieldContext

      protected <T> void endFieldContext()
      Called when processing of a form field is complete. Exists for subclasses.
    • endInterceptorContext

      protected void endInterceptorContext()
      Called when this interceptor completes (and is not disabled). Does nothing and really exists for extending subclasses.
    • filterFormFieldsPostCategorise

      protected void filterFormFieldsPostCategorise()

      Does not nothing and is a placeholder called after categoriseFields.

      Can access InterceptorContext property set 4 and lower.

    • filterFormFieldsPreCategorise

      protected List<Field> filterFormFieldsPreCategorise(List<Field> formFields)

      Returns form fields except those that should be skipped before any policy annotations are analysed. Skips none and exists for extending subclasses.

      Can access InterceptorContext property set 3 and lower.

    • filterRequestParameters

      protected HttpParameters filterRequestParameters(HttpParameters requestParameters)

      Removes rejected request parameters from the allowed request parameters (property set 3), which are those that exceed max parameter length or fail filter if Action implements ParameterNameAware.

      Can access InterceptorContext property set 3 and lower.

    • getDefaultMessage

      protected String getDefaultMessage(String recipientFieldName, Class<?> recipientClass)
      Returns error message if a default converter fails.

      Can access all InterceptorContext properties and FieldContext property set 4 and lower.

    • getFormFields

      protected List<Field> getFormFields(List<Field> allFields)

      Returns form member fields that can plausibly receive form data. This excludes static and final fields.

      Can access InterceptorContext property set 3 and lower.

    • getMessage

      protected String getMessage(TextProvider textProvider, String messageKey, String message)
      Returns message to use, extracted from text provider if required. textProvider can be null if Action does not implement it.

      Can access all InterceptorContext properties and FieldContext property set 4 and lower.

    • getMessageTypeForDefault

      protected Required.MessageType getMessageTypeForDefault()

      Returns target type for conversion and validation failures if annotation uses default type.

      Can access all InterceptorContext properties and FieldContext property set 4 and lower.

    • getProperties

      protected List<Field> getProperties(Class<?> type)

      Returns all form fields of defined by form class.

      Can access InterceptorContext property set 3 and lower.

    • getRecipientFieldForConversionMode

      protected Field getRecipientFieldForConversionMode()

      Whilst processing a field, returns field to receive a converted value.

    • getRecipientFieldMultiplicityForConversionMode

      protected InterceptorCommonLibrary.FieldMultiplicity getRecipientFieldMultiplicityForConversionMode()

      Whilst processing a field, returns whether the field to receive a converted value is single value, array, or collection.

    • getRecipientFieldTypeForConversionMode

      protected <T> Class<T> getRecipientFieldTypeForConversionMode()

      Whilst processing a field, for the field to receive a converted value, returns the field value for single value, array type for arrays, and entry type for collections.

    • getRequestParameters

      protected HttpParameters getRequestParameters()

      Sets interceptor context's request parameters as a mutable copy.

      Can access InterceptorContext property set 2 and lower.

    • getValidationLogger

      protected org.apache.logging.log4j.Logger getValidationLogger(ActionInvocation invocation, Object action)

      Returns Log4j2 logger to use for conversion and validation failures. Uses Action's AbstractActionSupport.getLogger() if it exists, otherwise this classes logger. Cannot return null.

      Can access InterceptorContext property set 1.

    • ignoreMessage

      protected void ignoreMessage(org.apache.logging.log4j.Logger logger, String message)
      Called when an error message is to be ignored.
    • listConvert

      protected <T> ConversionResult<T> listConvert()

      Invokes list converter and returns result, or returns skipped result if the adjusted formatted value is empty string and the list converter does not handle those.

      Can access all InterceptorContext properties and FieldContext property set 4 and lower.

    • listPostConversionAdjust

      protected <T> List<T> listPostConversionAdjust()

      Invokes list post-conversion adjuster and returns result; or returns input list if it's empty list and adjuster skips them.

      Can access all InterceptorContext properties and FieldContext property set 5 and lower.

    • listPostConversionValidate

      protected <T> ValidationResult listPostConversionValidate()

      Invokes list post-conversion validator and returns result, or returns success result if the converted value is empty and validator skips them.

      Can access all InterceptorContext properties and FieldContext property set 5 and lower.

    • logDebugMessage

      protected void logDebugMessage(org.apache.logging.log4j.Logger validationLogger, String message)
      Logs message to Action's logger at DEBUG level.
    • logErrorMessage

      protected void logErrorMessage(org.apache.logging.log4j.Logger validationLogger, String message)
      Logs message to Action's logger at ERROR level.
    • logInfoMessage

      protected void logInfoMessage(org.apache.logging.log4j.Logger validationLogger, String message)
      Logs message to Action's logger at INFO level.
    • logTraceMessage

      protected void logTraceMessage(org.apache.logging.log4j.Logger validationLogger, String message)
      Logs message to Action's logger at TRACE level.
    • logWarnMessage

      protected void logWarnMessage(org.apache.logging.log4j.Logger validationLogger, String message)
      Logs message to Action's logger at WARN level.
    • makeCollectionForRecipient

      protected <T> Collection<T> makeCollectionForRecipient(Class<?> recipientFieldClass)
      Returns an empty collection to set the recipient field and will accept converted values.

      Can access all InterceptorContext properties and FieldContext property set 4 and lower.

    • makeFieldContext

      protected <T> DefaultAnnotationValidator.FieldContext<T> makeFieldContext()
      Returns an initial execution state about a field.
    • makeInterceptorContext

      protected DefaultAnnotationValidator.InterceptorContext makeInterceptorContext()
      Returns an initial execution state.
    • nonConversionValidate

      protected <T> ValidationResult nonConversionValidate()

      Invokes non-conversion validator and returns result, or success results if the adjusted formatted value is empty string and validator skips them.

      Can access all InterceptorContext properties and FieldContext property set 3 and lower.

    • parseRequestParameter

      protected ParsedParameter parseRequestParameter(String parameterName, String parameterValue)

      Parses allowed HTTP parameter name into field name and index, if any.

      Can access InterceptorContext property set 3 and lower.

    • parseRequestParameters

      protected void parseRequestParameters(HttpParameters allowedRequestParameters)

      Parses allowed HTTP parameters into field name and index, if any, and sets fieldParsedParameterListTable.

      Can access InterceptorContext property set 3 and lower.

    • parseUploadedFileRequestParameter

      protected ParsedParameter parseUploadedFileRequestParameter(String parameterName, UploadedFile uploadedFile)

      Parses allowed HTTP parameter name into field name and index, if any, for file uploads.

      Can access InterceptorContext property set 3 and lower.

    • postConversionAdjust

      protected <T> T postConversionAdjust()

      Invokes post-conversion adjuster and returns result; or returns input value if it's null and adjuster skips them.

      Can access all InterceptorContext properties and FieldContext property set 5 and lower.

    • postConversionValidate

      protected <T> ValidationResult postConversionValidate()

      Invokes post-conversion validator and returns result, or returns success result if the converted value is null and validator skips them.

      Can access all InterceptorContext properties and FieldContext property set 5 and lower.

    • processFileFormField

      protected void processFileFormField() throws IllegalArgumentException, IllegalAccessException

      Sets File form field from special file parameter created by FileUplodIntereceptor, for file conversion mode.

      Can access all InterceptorContext properties and FieldContext property set 2 and lower.

      Throws:
      IllegalArgumentException
      IllegalAccessException
    • processFileFormFieldArray

      protected void processFileFormFieldArray() throws IllegalArgumentException, IllegalAccessException

      Sets File form field from special file parameter created by FileUplodIntereceptor, for file conversion mode.

      Can access all InterceptorContext properties and FieldContext property set 2 and lower.

      Throws:
      IllegalArgumentException
      IllegalAccessException
    • processFileFormFieldCollection

      protected void processFileFormFieldCollection() throws IllegalArgumentException, IllegalAccessException

      Sets File form field from special file parameter created by FileUplodIntereceptor, for file conversion mode.

      Can access all InterceptorContext properties and FieldContext property set 2 and lower.

      Throws:
      IllegalArgumentException
      IllegalAccessException
    • processFileFormFieldSingleValue

      protected void processFileFormFieldSingleValue() throws IllegalArgumentException, IllegalAccessException

      Sets File form field from special file parameter created by FileUplodIntereceptor, for file conversion mode.

      Can access all InterceptorContext properties and FieldContext property set 2 and lower.

      Throws:
      IllegalArgumentException
      IllegalAccessException
    • processFormField

      protected <T> void processFormField() throws IllegalArgumentException, IllegalAccessException

      Sets, adjusts, converts and validates a single value form field from a request parameter according to its conversion mode. Not called for set only conversion mode.

      Can access all InterceptorContext properties and FieldContext property set 2 and lower.

      Throws:
      IllegalArgumentException
      IllegalAccessException
    • processFormFieldEnd

      protected <T> void processFormFieldEnd()

      Called after all processing for a field is complete. Not called for fields marked as manual parameter conversion.

      Can access all InterceptorContext properties and FieldContext property set 5 and lower.

    • processFormFieldFailed

      protected <T> void processFormFieldFailed(Exception e)

      Called after processing for a field fails with an exception. Not called for fields marked as manual parameter conversion.

      Can access all InterceptorContext properties and FieldContext property set 5 and lower.

    • processFormFieldStart

      protected <T> void processFormFieldStart()

      Called to initialise processing for a field. Not called for fields marked as manual parameter conversion.

      Can access all InterceptorContext properties and FieldContext property set 2 and lower.

    • processManualConversionFormFields

      protected void processManualConversionFormFields()

      Calls form to process request parameters not handled by other form fields and writes parameters that failed as conversion errors. Does nothing if the form doesn't implement Form.

      Can access all InterceptorContext properties.

    • processRejections

      protected <T> void processRejections()

      Presents form field values if any non-conversion validation or conversion failures happened.

      Can access all InterceptorContext properties and FieldContext property set 6 and lower.

    • processSetOnlyFormField

      protected void processSetOnlyFormField() throws IllegalArgumentException, IllegalAccessException

      Sets string field, string array or string collection form field for set only conversion mode.

      Can access all InterceptorContext properties and FieldContext property set 2 and lower.

      Throws:
      IllegalArgumentException
      IllegalAccessException
    • setFormattedField

      protected <T> void setFormattedField() throws IllegalArgumentException, IllegalAccessException

      Sets the field to receive the unconverted value, if one applies.

      Can access all InterceptorContext properties and FieldContext property set 2 and lower.

      Throws:
      IllegalArgumentException
      IllegalAccessException
    • setUnformattedField

      protected <T> void setUnformattedField() throws IllegalArgumentException, IllegalAccessException

      Sets the field to receive the converted value, or converted values for collection converters, if one applies.

      Can access all InterceptorContext properties and FieldContext property set 5 and lower.

      Throws:
      IllegalArgumentException
      IllegalAccessException
    • startFieldContext

      protected <T> void startFieldContext(DefaultAnnotationValidator.FieldContext.ConversionMode conversionMode, FieldParsedParameterList fieldParsedParameterList, InterceptorCommonLibrary.FieldUsage<T> fieldUsage, InterceptorCommonLibrary.PairFieldUsage<T> pairFieldUsage)
      Called when algorithm is about to start for a field in earnest and sets FieldContext property set 2.
    • startInterceptorContext

      protected void startInterceptorContext(ActionInvocation invocation)
      Called when algorithm is about to start in earnest and sets InterceptorContext property set 2.
    • validateInit

      protected void validateInit()
      Initialisation that needs to be done before main logic of validate is run.
    • writeFieldError

      protected void writeFieldError(ValidationAware validationAware, String fieldName, String message)
      Writes message to Action's field errors for field. ValidationAware can be null if Action does not implement it.
    • writeGeneralError

      protected void writeGeneralError(ValidationAware validationAware, String message)
      Writes message to Action's action errors. ValidationAware can be null if Action does not implement it.
    • writeInfoMessage

      protected void writeInfoMessage(ValidationAware validationAware, String message)
      Writes message to Action's action messages. ValidationAware can be null if Action does not implement it.
    • writeWarningMessage

      protected void writeWarningMessage(ValidationAware validationAware, String message)
      Writes message to Action's action warnings. ValidationAware can be null if Action does not implement it.
    • getDefaultMessageType

      public Required.MessageType getDefaultMessageType()
      Returns default target for writing or logging conversion and validation failures. Cannot return DEFAULT or null.
    • setDefaultMessageType

      public void setDefaultMessageType(Required.MessageType defaultMessageType)
    • getIgnoreNonAnnotatedFields

      public boolean getIgnoreNonAnnotatedFields()
      Returns whether form fields with no recognised annotations are ignored..
    • setIgnoreNonAnnotatedFields

      public void setIgnoreNonAnnotatedFields(boolean ignoreNonAnnotatedFields)
    • getParamMaxListSize

      public int getParamMaxListSize()
      Returns maximum number entries of an array or collection field. Defaults to 256.
    • setParamMaxListSize

      public void setParamMaxListSize(int paramMaxListSize)
    • getParamNameMaxLength

      public int getParamNameMaxLength()
      Returns maximum length of parameters that can be accepted. Defaults to 100.
    • setParamNameMaxLength

      public void setParamNameMaxLength(int paramNameMaxLength)
    • getPolicyLookup

      public PolicyLookup getPolicyLookup()
      Returns policy lookup by annotation helper used in validation.
    • setPolicyLookup

      public void setPolicyLookup(PolicyLookup policyLookup)
    • validate

      public void validate()
      Entry point called by AnnotationValidationInterceptor2.
      Specified by:
      validate in interface AnnotationValidatior