xform.java.svn-base
来自「j2me mobile application for upload file 」· SVN-BASE 代码 · 共 183 行
SVN-BASE
183 行
package org.celllife.clforms.api;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Enumeration;
import java.util.Vector;
import minixpath.XPathExpression;
import org.kxml2.io.KXmlSerializer;
import org.kxml2.kdom.Document;
import org.kxml2.kdom.Element;
import org.kxml2.kdom.Node;
import de.enough.polish.util.HashMap;
import de.enough.polish.util.Locale;
public class XForm {
private String name;
private Vector elements;
private Document xmlModel;
private HashMap bindings;
private String url;
public String getUrl() {
return this.url;
}
public void setUrl(String url) {
this.url = url;
}
public XForm() {
super();
this.elements = new Vector();
this.bindings = new HashMap();
}
public XForm(String name, Vector elements, Document model) {
super();
this.name = name;
this.elements = elements;
this.bindings = new HashMap();
this.xmlModel = model;
}
public void addElement(XFElement newElement) {
// TODO: why cast to Object?
elements.addElement((Object) newElement);
}
public XFElement getElement(int elementId) {
return (XFElement) elements.elementAt(elementId);
}
public Vector getElements() {
return elements;
}
public void setElements(Vector elements) {
this.elements = elements;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Document getXmlModel() {
return xmlModel;
}
public void setXmlModel(Document model) {
this.xmlModel = model;
}
public int getElementCount() {
return elements.size();
}
/**
* Returns a Vector containing all the elements of the specified type.
*
* @param type
* @return
*/
public Vector getElementsByType(int type) {
Vector typeElements = new Vector();
Enumeration e = elements.elements();
while (e.hasMoreElements()) {
XFElement elem = (XFElement) e.nextElement();
if (elem.getDataType() == type)
typeElements.addElement(elem);
}
return typeElements;
}
public HashMap getBindings() {
return this.bindings;
}
public void setBindings(HashMap bindings) {
this.bindings = bindings;
}
/**
* @param b
*/
public void addBinding(Binding b) {
bindings.put(b.getId(), b);
}
/**
* Populates the xmlModel with the data contained in the XFElements
*/
public void populateModel() {
Enumeration e = elements.elements();
while (e.hasMoreElements()) {
XFElement elem = (XFElement) e.nextElement();
if (elem.getValue() != null)
updateModel(elem);
}
}
/**
* Updates the xmlModel with the data in a particular element.
*
* @param elem
*/
private void updateModel(XFElement elem) {
String xpath = elem.getXpathBinding();
String value = elem.getStringValue();
if (value != null) {
//#debug debug
System.out.println(value.toString());
XPathExpression xpls = new XPathExpression(xmlModel, xpath);
Vector result = xpls.getResult();
for (Enumeration e = result.elements(); e.hasMoreElements();) {
Object obj = e.nextElement();
if (obj instanceof Element)
((Element) obj).addChild(Node.TEXT, value);
}
}
}
/**
* Evaluates an Xpath expression on the xmlModel and returns a Vector result
* set.
*
* @param string
* @return Vector result set
*/
public Vector evaluateXpath(String xpath) {
XPathExpression xpls = new XPathExpression(xmlModel, xpath);
return xpls.getResult();
}
/**
*
*/
public void writeModel(OutputStream stream) {
try {
KXmlSerializer serializer = new KXmlSerializer();
serializer.setOutput(stream, null);
xmlModel.write(serializer);
serializer.flush();
} catch (IOException e) {
throw new RuntimeException(Locale.get("error.model.write")); //$NON-NLS-1$
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?