package com.magnet.plugin.r2m.helpers; import com.magnet.plugin.common.helpers.VerifyHelper; import com.magnet.plugin.r2m.messages.R2MMessages; import org.apache.commons.validator.routines.UrlValidator; /** * R2M specific verification methods. */ public class R2MVerifyHelper { /** * The supported schemes when validating the url */ private static final String[] SUPPORTED_PROTOCOL_SCHEMES = {"http", "https"}; private static final long URL_VALIDATION_OPTIONS = UrlValidator.ALLOW_LOCAL_URLS; public static boolean isValidUrl(String url) { String templateURL = url; templateURL = templateURL.replaceAll(R2MConstants.START_TEMPLATE_VARIABLE_REGEX, ""); templateURL = templateURL.replaceAll(R2MConstants.END_TEMPLATE_VARIABLE_REGEX, ""); UrlValidator urlValidator = new UrlValidator(SUPPORTED_PROTOCOL_SCHEMES, URL_VALIDATION_OPTIONS); return urlValidator.isValid(templateURL); } public static boolean isValidUrlWithoutPerformance(String url) { UrlValidator urlValidator = new UrlValidator(); return urlValidator.isValid(url); } private static String verifyByKeyWords(String text) { if (VerifyHelper.KEYWORDS.contains(text)) { UIHelper.showErrorMessage(R2MMessages.getMessage("NAME_CONFLICTS_WITH_JAVA_KEYWORDS")); text = ""; } return text; } public static String verifyClassName(String name) { return verify(name, "[^A-Za-z0-9_]", true); } public static String verifyMethodName(String name) { return verify(name, "[^A-Za-z0-9_]", false); } public static String verifyVariableName(String name) { return verify(name, "[^A-Za-z0-9_]", false); } private static String verify(String name, String regExp, boolean isUpper) { name = name.replaceAll(regExp, ""); if (!name.equalsIgnoreCase("")) { if (isUpper) { name = name.substring(0, 1).toUpperCase() + name.substring(1); } else { name = name.substring(0, 1).toLowerCase() + name.substring(1); } } name = verifyByKeyWords(name); return name; } public static String verifyPackageName(String name) { name = name.replaceAll(">", ""); return name; } }