List<MessageFunction> getELFunctions() { if (elFunctions == null) { return WebMessageExtractor.DEFAULT_MESSAGE_FUNCTIONS; } else { int len = elFunctions.length; MessageFunction[] functions = new MessageFunction[len]; for (int i=0; i<len; i++) { functions[i] = MessageFunction.fromEL(elFunctions[i]); } return Arrays.asList(functions); } }
public static MessageFunction fromJava(String className, String signature) { MessageFunction fn = fromJava(signature); fn.setNamespace(className.replace('.', '/')); return fn; }
public ConstantTrackingInterpreter( MessageBundle catalog, List<MessageFunction> functions, boolean srcRefPaths ) { super( 1 ); this.srcRefPaths = srcRefPaths; this.bundle = catalog; this.functionByDesc = new HashMap<String, MessageFunction>(); for (MessageFunction function : functions) { String key = function.getNamespace() + "." + function.getName() + function.getDescription(); log.debug("Adding function {}", key); if (functionByDesc.containsKey(key)) { log.error("Multiple definitions for MessageFunction {}" + key); } functionByDesc.put(key, function); } }
log.debug("Trying to match parameters for {} ({})", mfn.getName(), mfn.getNamespace()); if (mfn.getNamespace().equals(uri) && mfn.getName().equals(name) && count >= mfn.getParameterCount()) { int contextIdx = mfn.getContextIndex(); int messageIdx = mfn.getMessageIndex(); int pluralIdx = mfn.getPluralIndex(); String message = null; String context = null;
private void extractMessage(MessageFunction function, String functionName, List values) { String sourceReference = getCurrentSourceReference(); int length = values.size(); int messageIdx = function.getMessageIndex(); int contextIdx = function.getContextIndex(); int pluralIdx = function.getPluralIndex(); String message = null; String context = null;
List<MessageFunction> getJavaFunctions() { if (javaFunctions == null) { return AsmMessageExtractor.DEFAULT_MESSAGE_FUNCTIONS; } else { int len = javaFunctions.length; MessageFunction[] functions = new MessageFunction[len]; for (int i=0; i<len; i++) { functions[i] = MessageFunction.fromJava(javaFunctions[i]); } return Arrays.asList(functions); } }
public static MessageFunction fromEL(String namespace, String signature) { int idx = validateParamIdx(signature); String methodName = signature.substring(0, idx).trim(); String methodParams = signature.substring(idx + 1, signature.length() - 1); int messageIndex = -1; int contextIndex = -1; int pluralIndex = -1; String[] params = methodParams.split("\\s*,\\s*"); int length = params.length; for (int i = 0; i < length; i++) { String name = params[i]; if ("context".equals(name)) { contextIndex = i; } else if ("message".equals(name)) { messageIndex = i; } else if ("plural".equals(name)) { pluralIndex = i; } } return new MessageFunction(namespace, methodName, null, messageIndex, contextIndex, pluralIndex, length); }
private static MessageFunction fromJava(String className, String returnType, String methodName, String methodParams) { String namespace = className.replace('.', '/'); int messageIndex = -1; int contextIndex = -1; int pluralIndex = -1; boolean isConstructor = "<init>".equals(methodName); String[] params = methodParams.split("\\s*,\\s*"); StringBuilder desc = new StringBuilder(); desc.append("("); int length = params.length; for (int i = 0; i < length; i++) { String[] typeAndName = params[i].split("\\s+"); if (typeAndName.length > 1) { String name = typeAndName[1]; if ("context".equals(name)) { contextIndex = isConstructor ? i+1 : i; } else if ("message".equals(name)) { messageIndex = isConstructor ? i+1 : i; } else if ("plural".equals(name)) { pluralIndex = isConstructor ? i+1 : i; } } if (typeAndName[0].length() > 0) { appendInternalName(desc, typeAndName[0]); } } desc.append(")"); appendInternalName(desc, returnType); return new MessageFunction(namespace, methodName, desc.toString(), messageIndex, contextIndex, pluralIndex, length); }
log.debug("Trying to match parameters for {} ({})", mfn.getName(), mfn.getNamespace()); if (mfn.getNamespace().equals(uri) && mfn.getName().equals(name) && count >= mfn.getParameterCount()) { int contextIdx = mfn.getContextIndex(); int messageIdx = mfn.getMessageIndex(); int pluralIdx = mfn.getPluralIndex(); String message = null; String context = null;
private void extractMessage(MessageFunction function, String functionName, List values) { String sourceReference = getCurrentSourceReference(); int length = values.size(); int messageIdx = function.getMessageIndex(); int contextIdx = function.getContextIndex(); int pluralIdx = function.getPluralIndex(); String message = null; String context = null;
public static MessageFunction fromJava(String signature) { Matcher matcher = SIGNATURE_PATTERN.matcher(signature); if (matcher.matches()) { String returnType = matcher.group(1); String methodName = matcher.group(2); String parameters = matcher.group(3); String className; int idx = methodName.lastIndexOf('.'); if (idx >= 0) { className = methodName.substring(0, idx); methodName = methodName.substring(idx+1); } else { className = ""; } if (returnType == null) { returnType = "void"; } return fromJava(className, returnType, methodName, parameters); } else { throw new IllegalArgumentException("Invalid java method signature '" + signature + "'"); } }
public static MessageFunction fromEL(String namespace, String signature) { int idx = validateParamIdx(signature); String methodName = signature.substring(0, idx).trim(); String methodParams = signature.substring(idx + 1, signature.length() - 1); int messageIndex = -1; int contextIndex = -1; int pluralIndex = -1; String[] params = methodParams.split("\\s*,\\s*"); int length = params.length; for (int i = 0; i < length; i++) { String name = params[i]; if ("context".equals(name)) { contextIndex = i; } else if ("message".equals(name)) { messageIndex = i; } else if ("plural".equals(name)) { pluralIndex = i; } } return new MessageFunction(namespace, methodName, null, messageIndex, contextIndex, pluralIndex, length); }
private static MessageFunction fromJava(String className, String returnType, String methodName, String methodParams) { String namespace = className.replace('.', '/'); int messageIndex = -1; int contextIndex = -1; int pluralIndex = -1; boolean isConstructor = "<init>".equals(methodName); String[] params = methodParams.split("\\s*,\\s*"); StringBuilder desc = new StringBuilder(); desc.append("("); int length = params.length; for (int i = 0; i < length; i++) { String[] typeAndName = params[i].split("\\s+"); if (typeAndName.length > 1) { String name = typeAndName[1]; if ("context".equals(name)) { contextIndex = isConstructor ? i+1 : i; } else if ("message".equals(name)) { messageIndex = isConstructor ? i+1 : i; } else if ("plural".equals(name)) { pluralIndex = isConstructor ? i+1 : i; } } if (typeAndName[0].length() > 0) { appendInternalName(desc, typeAndName[0]); } } desc.append(")"); appendInternalName(desc, returnType); return new MessageFunction(namespace, methodName, desc.toString(), messageIndex, contextIndex, pluralIndex, length); }
public ConstantTrackingInterpreter( MessageBundle catalog, List<MessageFunction> functions, boolean srcRefPaths ) { super( 1 ); this.srcRefPaths = srcRefPaths; this.bundle = catalog; this.functionByDesc = new HashMap<String, MessageFunction>(); for (MessageFunction function : functions) { String key = function.getNamespace() + "." + function.getName() + function.getDescription(); log.debug("Adding function {}", key); if (functionByDesc.containsKey(key)) { log.error("Multiple definitions for MessageFunction {}" + key); } functionByDesc.put(key, function); } }
public static MessageFunction fromJava(String className, String signature) { MessageFunction fn = fromJava(signature); fn.setNamespace(className.replace('.', '/')); return fn; }
public static MessageFunction fromEL(String signature) { String namespace; if (signature.charAt(0) == '{') { int idx = signature.indexOf('}', 1); namespace = signature.substring(1, idx); signature = signature.substring(idx+1); } else { namespace = ""; } return fromEL(namespace, signature); }
public static MessageFunction fromJava(String signature) { Matcher matcher = SIGNATURE_PATTERN.matcher(signature); if (matcher.matches()) { String returnType = matcher.group(1); String methodName = matcher.group(2); String parameters = matcher.group(3); String className; int idx = methodName.lastIndexOf('.'); if (idx >= 0) { className = methodName.substring(0, idx); methodName = methodName.substring(idx+1); } else { className = ""; } if (returnType == null) { returnType = "void"; } return fromJava(className, returnType, methodName, parameters); } else { throw new IllegalArgumentException("Invalid java method signature '" + signature + "'"); } }
public static MessageFunction fromEL(String signature) { String namespace; if (signature.charAt(0) == '{') { int idx = signature.indexOf('}', 1); namespace = signature.substring(1, idx); signature = signature.substring(idx+1); } else { namespace = ""; } return fromEL(namespace, signature); }