Interstage Application Server SOAPサービス ユーザーズガイド |
目次 索引 |
第8章 サポートされるデータ型 | > 8.2 XMLとCORBAのデータ型マッピング |
以下の表にCORBAの列挙(enum)型とXMLのデータ型の対応を示します。
RPCアプリケーション上のJavaのデータ型は、inパラメタ/返り値(return)はデータ名SOAPEnumImplクラス、outパラメタ/inoutパラメタはデータ名SOAPEnumImplHolderになります。RPCアプリケーションでは、連携するCORBAアプリケーションのenum型に対して、“データ名SOAPEnumImpl”と“データ名SOAPEnumImplHolder”クラスを使用します。
XMLのデータ型 |
RPCアプリケーション上のJavaのデータ型 |
CORBAのデータ型 |
|
---|---|---|---|
in/return |
out/inout |
||
列挙 |
データ名SOAPEnumImpl |
データ名SOAPEnumImplHolder |
enum |
以下のIDL定義をIDLコンパイルした場合
module fujitsu { module sample { enum Color {blue, red, green}; }; }; |
以下のenum名+SOAPEnumImplクラスが生成されます。
package fujitsu.sample; public class ColorSOAPEnumImpl { private String _value; public static final String _blue = "blue"; public static final String _red = "red"; public static final String _green = "green"; public static final ColorSOAPEnumImpl blue = new ColorSOAPEnumImpl(_blue); public static final ColorSOAPEnumImpl red = new ColorSOAPEnumImpl(_red); public static final ColorSOAPEnumImpl green = new ColorSOAPEnumImpl(_green); private static final String[] member = new String[] { "blue", "red", "green" }; protected ColorSOAPEnumImpl() { } protected ColorSOAPEnumImpl( String value ) { _value = value; } public String getValue() { return _value; } public static ColorSOAPEnumImpl fromValue( String value ) { if( value.equals(_blue)) return blue; else if( value.equals(_red)) return red; else if( value.equals(_green)) return green; else throw new java.lang.IllegalArgumentException("Invalid Enum value: "+ value); } public static ColorSOAPEnumImpl fromString( String value ) { if( value.equals(_blue)) return blue; else if( value.equals(_red)) return red; else if( value.equals(_green)) return green; else throw new java.lang.IllegalArgumentException("Invalid Enum string: "+ value); } public boolean equals( Object obj ) { if( obj instanceof fujitsu.sample.ColorSOAPEnumImpl ) { if(((fujitsu.sample.ColorSOAPEnumImpl)obj).getValue() == getValue()) { return(true); } } return(false); } public int hashCode() { return(getValue().hashCode()); } public String toString() { return (_value); } public int getIndex() { if( _value == null ){ throw new java.lang.IllegalArgumentException("Mapping fail, non initialize."); } if( member == null ){ throw new java.lang.IllegalArgumentException("Enumm member non exsit."); } for(int index = 0 ; index < member.length; index++){ if(_value.equals(member[index])){ return(index); } } throw new java.lang.IllegalArgumentException( "Mapping fail, invalid Enum : "+ _value); } public void setByIndex(int index) { if(0<=index && index<member.length){ _value = member[index]; return; } throw new java.lang.IllegalArgumentException("Invalid Enum index: "+index); } } |
目次 索引 |