/** * @author Tang Liang */ package openminer; import org.jdom.*; import org.jdom.input.*; import java.io.*; import java.util.*; public class Model { private String m_ModelName; private String m_ModelType; private String m_ModelMethod; private String m_ModelXMLDefine; private Element m_ModelDOMDefine = null; private byte[] m_ModelResultData = null; private String m_ModelResultText; public Model() { } /** * 创建一个挖掘模型 * @param xml 模型定义XML * @throws Exception */ public void createModel(String xml) throws Exception { SAXBuilder builder = new SAXBuilder(); ByteArrayInputStream is = new ByteArrayInputStream(xml.getBytes("UTF-8")); Document doc = builder.build(is); Element root = doc.getRootElement(); m_ModelDOMDefine = root; this.setModelName(root.getAttributeValue("name")); this.setModelType(root.getAttributeValue("type")); this.setModelMethod(root.getAttributeValue("method")); this.m_ModelXMLDefine = xml; } public void setModelName(String name) { m_ModelName = name; } public String getModelName() { return m_ModelName; } public void setModelType(String type) { m_ModelType = type; } public String getModelType() { return m_ModelType; } public void setModelMethod(String method) { m_ModelMethod = method; } public String getModelMethod() { return m_ModelMethod; } public String getMinerClassName() { StringBuffer strBuf = new StringBuffer(); strBuf.append("openminer."); strBuf.append(m_ModelType+"."); strBuf.append(m_ModelMethod.toLowerCase()+"."); strBuf.append(m_ModelMethod); return strBuf.toString(); } public String getModelXMLDefine() { return m_ModelXMLDefine; } public Element getModelDOMDefine() { return m_ModelDOMDefine; } public Element getModelDataSetDOMDefine() { return m_ModelDOMDefine.getChild("dataset"); } public String getModelPropertyParameter(String name) { Element property = m_ModelDOMDefine.getChild("property"); Element param = property.getChild(name); if(param != null) { return param.getText(); } else return null; } public boolean containsAttribute(String attName) { List attList = m_ModelDOMDefine.getChild("dataset").getChildren(); for(int i=0;i