package sizzle.functions; import java.net.MalformedURLException; import java.net.URL; import sizzle.functions.FunctionSpec; public class SizzleTestFunctions { private static int[] scrabbleValue = new int[] { 1, 3, 3, 2, 1, 4, 2, 4, 1, 8, 5, 1, 3, 1, 1, 3, 10, 1, 1, 1, 1, 4, 4, 8, 4, 10 }; @FunctionSpec(name = "keywords", returnType = "array of string", formalParameters = { "string" }) public static String[] keywords(final String url) { try { return new URL(url).getQuery().split("=", 2)[1].split("\\+"); } catch (final MalformedURLException e) { return null; } } @FunctionSpec(name = "domain", returnType = "string", formalParameters = { "string" }) public static String domain(final String url) { try { return new URL(url).getHost(); } catch (final MalformedURLException e) { return null; } } @FunctionSpec(name = "scrabble", returnType = "int", formalParameters = { "string" }) public static long scrabble(final String word) { int sum = 0; for (final char c : word.toCharArray()) sum += SizzleTestFunctions.scrabbleValue[Character.toLowerCase(c) - 'a']; return sum; } @FunctionSpec(name = "regexreplace", returnType = "string", formalParameters = { "string", "string", "string", "bool" }) public static String regexReplace(final String string, final String regex, final String replacement, final boolean replaceAll) { if (replaceAll) return string.replaceAll(regex, replacement); else return string.replaceFirst(regex, replacement); } }