code: @Override
  	protected void validateComponent(final List<Diagnostic> diags) {
  		super.validateComponent(diags);
  
  		String[] values = getValue();
  
  		if (values != null) {
  			int max = getMaxLength();
  			int min = getMinLength();
  			Pattern pattern = getComponentModel().pattern;
  
  			for (String value : values) {
  				boolean invalid = false;
  
  				if (Util.empty(value)) {
  					continue;
  				}
  
  				// Minimum Length
  				if (min > 0 && value.length() < min) {
  					diags.add(createErrorDiagnostic(
  							InternalMessages.DEFAULT_VALIDATION_ERROR_MIN_LENGTH, this,
  							String.valueOf(min)));
  					invalid = true;
  				}
  
  				// Maximum Length
  				if (max > 0 && value.length() > max) {
  					diags.add(createErrorDiagnostic(
  							InternalMessages.DEFAULT_VALIDATION_ERROR_MAX_LENGTH, this,
  							String.valueOf(max)));
  					invalid = true;
  				}
  
  				// Pattern
  				if (pattern != null) {
  					Matcher matcher = pattern.matcher(value);
  					if (!matcher.matches()) {
  						diags.add(createErrorDiagnostic(
  								InternalMessages.DEFAULT_VALIDATION_ERROR_INVALID_PATTERN, this));
  						invalid = true;
  					}
  				}
  
  				// Only report the first invalid item
  				if (invalid) {
  					break;
  				}
  			}
  		}
  	}
docs: Override validateComponent to perform further validation.
  
  @param diags the list into which any validation diagnostics are added.