/** * Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved. * EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * http://www.ewcms.com */ package com.ewcms.plugin.report.manager.util; import java.util.LinkedHashSet; import java.util.Set; import java.util.StringTokenizer; import com.ewcms.plugin.report.model.Parameter; /** * @author 吴智俊 */ public class ChartAnalysisUtil { public static Set<Parameter> analysisSql(String sql) { Set<Parameter> set = new LinkedHashSet<Parameter>(); int beginIndex = 0; int endIndex = 0; for (int i = 0; i < sql.length(); i++) { String p = sql.substring(i, i + 1); if (p.equals("$")) { beginIndex = i; continue; } if (p.equals("}")) { endIndex = i; } if (endIndex > beginIndex + 3) { String temp = sql.substring(beginIndex + 3, endIndex); StringTokenizer tokenizer = new StringTokenizer(temp, "|", false); Parameter parameter = new Parameter(); while (tokenizer.hasMoreElements()) { String[] splitValue = tokenizer.nextToken().split("="); if (splitValue.length > 0){ String name = splitValue[0]; String value = ""; if (splitValue.length == 2) value = splitValue[1]; if (name.toLowerCase().equals("name")){ parameter.setEnName(value); }else if (name.equals("class")){ parameter.setClassName(value); }else if (name.equals("des")){ parameter.setDescription(value); }else if (name.equals("dv")){ parameter.setDefaultValue(value); } parameter.setType(Parameter.Type.TEXT); } } beginIndex = endIndex = 0; set.add(parameter); } } return set; } public static void main(String[] args) { } }