private String analyseChartBlock(String chartBlock, QueryResult queryResult){
StringBuffer result = new StringBuffer("data:image/jpeg;base64,");
String chartTyp, variables, line = new String();
int width, height;
DataModel dm;
ByteArrayOutputStream output=new ByteArrayOutputStream();
Pattern pattern = Pattern.compile(Encode.OPTIONS + "\\((.*?),(.*?),width=(.*?),height=(.*?)\\)" + Encode.END + "(.*)");
Matcher matcher = pattern.matcher(chartBlock);
if (matcher.find()){
chartTyp = matcher.group(1);
variables = matcher.group(2);
variables = variables.replaceAll("\\?", "");
width = Integer.parseInt(matcher.group(3));
height = Integer.parseInt(matcher.group(4));
line = matcher.group(5);
dm = ChartFactory.getModel(chartTyp, variables.split(","), queryResult);
output = dm.asImage(width, height);
result.append(Base64.encodeBase64String(output.toByteArray()));
line = replaceImage(result.toString(), line);
line = replaceLegend(dm.getLegend(), line);
}
return line;
}