| 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);
}
} |
目次
索引
![]()
|