?? enumtype.java
字號:
package org.codehaus.xfire.aegis.type.java5;import org.codehaus.xfire.MessageContext;import org.codehaus.xfire.XFireRuntimeException;import org.codehaus.xfire.aegis.MessageReader;import org.codehaus.xfire.aegis.MessageWriter;import org.codehaus.xfire.aegis.type.Type;import org.codehaus.xfire.fault.XFireFault;import org.codehaus.xfire.soap.SoapConstants;import org.jdom.Attribute;import org.jdom.Element;import org.jdom.Namespace;public class EnumType extends Type{ @SuppressWarnings("unchecked") @Override public Object readObject(MessageReader reader, MessageContext context) throws XFireFault { String value = reader.getValue(); return Enum.valueOf(getTypeClass(), value); } @Override public void writeObject(Object object, MessageWriter writer, MessageContext context) throws XFireFault { writer.writeValue(((Enum) object).toString()); } @Override public void setTypeClass(Class typeClass) { if (!typeClass.isEnum()) { throw new XFireRuntimeException("Type class must be an enum."); } super.setTypeClass(typeClass); } @Override public void writeSchema(Element root) { Namespace xsd = Namespace.getNamespace(SoapConstants.XSD_PREFIX, SoapConstants.XSD); Element simple = new Element("simpleType",xsd ); simple.setAttribute(new Attribute("name", getSchemaType().getLocalPart())); root.addContent(simple); Element restriction = new Element("restriction", xsd); restriction.setAttribute(new Attribute("base", SoapConstants.XSD_PREFIX + ":string")); simple.addContent(restriction); Object[] constants = getTypeClass().getEnumConstants(); for (Object constant : constants) { Element enumeration = new Element("enumeration", xsd); enumeration.setAttribute(new Attribute("value", ((Enum) constant).toString())); restriction.addContent(enumeration); } } @Override public boolean isComplex() { return true; }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -