package org.jboss.windup.rules.apps.mavenize; import org.jboss.windup.config.AbstractConfigurationOption; import org.jboss.windup.config.InputType; import org.jboss.windup.config.ValidationResult; /** * Gives the user the option to skip class not found analysis. * * @author <a href="http://ondra.zizka.cz/">Ondrej Zizka, ozizka at seznam.cz</a> */ public class MavenizeGroupIdOption extends AbstractConfigurationOption { public static final String NAME = "mavenizeGroupId"; public static final String REGEX_GROUP_ID = "[a-zA-Z][-_a-zA-Z0-9]*(\\.[a-zA-Z][-_a-zA-Z0-9]*)*"; @Override public String getName() { return NAME; } @Override public String getLabel() { return "The <groupId> to use for Maven project stub pom.xml's."; } @Override public String getDescription() { return "All pom.xml files will use this value as their <groupId>. If the parameter" + " is omitted, Windup tries to guess some value based on the application," + " but this guess may be wrong. Last resort default value is '"+ModuleAnalysisHelper.LAST_RESORT_DEFAULT_GROUP_ID+"'."; } @Override public Class<?> getType() { return String.class; } @Override public InputType getUIType() { return InputType.SINGLE; } @Override public boolean isRequired() { return false; } @Override public ValidationResult validate(Object value) { if (value == null) return ValidationResult.SUCCESS; if (!(value instanceof String)) return new ValidationResult(ValidationResult.Level.ERROR, NAME + " option must be a String, was: " + value.getClass().getName()); String strValue = value.toString(); if (!strValue.matches(REGEX_GROUP_ID)) return new ValidationResult(ValidationResult.Level.ERROR, "Must follow the Maven groupId format - e.g. 'com.mycompany.groupId'."); return ValidationResult.SUCCESS; } }