validateApplicationId static method

ValidationResult<String> validateApplicationId(
  1. String? applicationId
)

Validates application ID format.

Ensures application IDs follow reverse domain notation and contain only valid characters.

Parameters:

  • applicationId: Application ID to validate

Returns: ValidationResult with the ID or error details

Example:

final result = ArgumentValidator.validateApplicationId('com.example.myapp');
if (result.isValid) {
  print('Valid application ID: ${result.value}');
} else {
  print('Invalid application ID: ${result.error}');
}

Implementation

static ValidationResult<String> validateApplicationId(String? applicationId) {
  if (applicationId == null || applicationId.isEmpty) {
    return ValidationResult.error(
      'Application ID is required',
      suggestion: 'Provide a valid application ID in reverse domain format',
      examples: ['com.example.myapp', 'org.company.product'],
    );
  }

  if (!RegExp(r'^[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)+$')
      .hasMatch(applicationId)) {
    return ValidationResult.error(
      'Application ID must use reverse domain notation',
      suggestion:
          'Use format like com.company.app with lowercase letters and dots',
      examples: [
        'com.example.myapp',
        'org.company.product',
        'dev.team.application'
      ],
    );
  }

  return ValidationResult.success(applicationId);
}