public abstract class Any extends Object implements IDLEntity
Any
オブジェクトは、NamedValue
オブジェクトのコンポーネントとして使用されます。NamedValueオブジェクトは、要求がとる引数または戻り値についての情報を提供し、またContext
オブジェクトで名前/値ペアを定義するために使用されます。
Any
オブジェクトの構成要素は次の2つです。
Any
オブジェクトに格納されているデータ値の型を記述するTypeCode
オブジェクト。たとえば配列のTypeCode
オブジェクトは、配列の長さのフィールドおよび配列要素の型のフィールドを持つ。この場合、TypeCode
オブジェクトの2番目のフィールドはそれ自体がTypeCode
オブジェクトである。
<a name="anyOps"Any
クラスの大部分は、Any
オブジェクトに値を挿入するメソッドと、Anyオブジェクトから値を抽出するメソッドの組で構成されます。
たとえばプリミティブ型Xが指定された場合、メソッドは次のとおりです。
void insert_X(X x)
X
のインスタンスx
をAny
オブジェクトのvalue
フィールドに挿入できる。また、insert_X
メソッドは必要に応じてAny
オブジェクトのtype
フィールドをリセットする。
X extract_X()
X
のインスタンスをAny
オブジェクトから抽出できる。
このメソッドは、次の2つの条件下で例外BAD_OPERATION
をスローします。
Any
オブジェクトに含まれる要素の型がX
でない場合
Any
オブジェクトのvalue
フィールドが設定される前に、extract_X
メソッドが呼び出される場合
各プリミティブIDLデータ型によって、それぞれ別々のメソッドの組があります。たとえば、insert_long
とextract_long
、insert_string
とextract_string
などです。
Any
クラスには、型コードを取得および設定するためのメソッド、2つのAny
オブジェクトが等しいかどうかをテストするメソッド、ストリームからAny
オブジェクトを読み込むメソッド、ストリームにAnyオブジェクトを書き込むメソッドもあります。
コンストラクタと説明 |
---|
Any() |
修飾子と型 | メソッドと説明 |
---|---|
abstract InputStream |
create_input_stream()
この
Any オブジェクトの値を非整列化できる入力ストリームを作成します。 |
abstract OutputStream |
create_output_stream()
この
Any オブジェクトの値を整列化できる出力ストリームを作成します。 |
abstract boolean |
equal(Any a)
この
Any オブジェクトと指定されたAny オブジェクトが等しいかどうかを判定します。 |
abstract Any |
extract_any()
この
Any オブジェクトのvalue フィールドのAny オブジェクトを抽出します。 |
abstract boolean |
extract_boolean()
この
Any オブジェクトのvalue フィールドのboolean を抽出します。 |
abstract char |
extract_char()
この
Any オブジェクトのvalue フィールドのchar を抽出します。 |
abstract double |
extract_double()
この
Any オブジェクトのvalue フィールドのdouble を抽出します。 |
BigDecimal |
extract_fixed()
この
Any オブジェクトのvalue フィールドのjava.math.BigDecimal オブジェクトを抽出します。 |
abstract float |
extract_float()
この
Any オブジェクトのvalue フィールドのfloat を抽出します。 |
abstract int |
extract_long()
この
Any オブジェクトのvalue フィールドのint を抽出します。 |
abstract long |
extract_longlong()
この
Any オブジェクトのvalue フィールドのlong を抽出します。 |
abstract Object |
extract_Object()
この
Any オブジェクトのvalue フィールドのorg.omg.CORBA.Object を抽出します。 |
abstract byte |
extract_octet()
この
Any オブジェクトのvalue フィールドのbyte を抽出します。 |
Principal |
extract_Principal()
非推奨。
CORBA 2.2では非推奨です。
|
abstract short |
extract_short()
この
Any オブジェクトのvalue フィールドのshort を抽出します。 |
Streamable |
extract_Streamable()
この
Any オブジェクトのvalue フィールドからStreamable を抽出します。 |
abstract String |
extract_string()
この
Any オブジェクトのvalue フィールドのString オブジェクトを抽出します。 |
abstract TypeCode |
extract_TypeCode()
この
Any オブジェクトのvalue フィールドのTypeCode オブジェクトを抽出します。 |
abstract int |
extract_ulong()
この
Any オブジェクトのvalue フィールドのint を抽出します。 |
abstract long |
extract_ulonglong()
この
Any オブジェクトのvalue フィールドのlong を抽出します。 |
abstract short |
extract_ushort()
この
Any オブジェクトのvalue フィールドのshort を抽出します。 |
abstract Serializable |
extract_Value()
この
Any オブジェクトのvalue フィールドのjava.io.Serializable オブジェクトを抽出します。 |
abstract char |
extract_wchar()
この
Any オブジェクトのvalue フィールドのchar を抽出します。 |
abstract String |
extract_wstring()
この
Any オブジェクトのvalue フィールドのString オブジェクトを抽出します。 |
abstract void |
insert_any(Any a)
指定された
Any オブジェクトをこのAny オブジェクトのvalue フィールドに挿入します。 |
abstract void |
insert_boolean(boolean b)
指定された
boolean をこのAny オブジェクトのvalue フィールドに挿入します。 |
abstract void |
insert_char(char c)
指定された
char をこのAny オブジェクトのvalue フィールドに挿入します。 |
abstract void |
insert_double(double d)
指定された
double をこのAny オブジェクトのvalue フィールドに挿入します。 |
void |
insert_fixed(BigDecimal value)
org.omg.CORBA.NO_IMPLEMENT 例外をスローします。 |
void |
insert_fixed(BigDecimal value, TypeCode type)
org.omg.CORBA.NO_IMPLEMENT 例外をスローします。 |
abstract void |
insert_float(float f)
指定された
float をこのAny オブジェクトのvalue フィールドに挿入します。 |
abstract void |
insert_long(int l)
指定された
int をこのAny オブジェクトのvalue フィールドに挿入します。 |
abstract void |
insert_longlong(long l)
指定された
long をこのAny オブジェクトのvalue フィールドに挿入します。 |
abstract void |
insert_Object(Object o)
指定された
org.omg.CORBA.Object オブジェクトをこのAny オブジェクトのvalue フィールドに挿入します。 |
abstract void |
insert_Object(Object o, TypeCode t)
指定された
org.omg.CORBA.Object オブジェクトをこのAny オブジェクトのvalue フィールドに挿入します。 |
abstract void |
insert_octet(byte b)
指定された
byte をこのAny オブジェクトのvalue フィールドに挿入します。 |
void |
insert_Principal(Principal p)
非推奨。
CORBA 2.2では非推奨です。
|
abstract void |
insert_short(short s)
指定された
short をこのAny オブジェクトのvalue フィールドに挿入します。 |
void |
insert_Streamable(Streamable s)
指定された
Streamable オブジェクトをこのAny オブジェクトのvalue フィールドに挿入します。 |
abstract void |
insert_string(String s)
指定された
String オブジェクトをこのAny オブジェクトのvalue フィールドに挿入します。 |
abstract void |
insert_TypeCode(TypeCode t)
指定された
TypeCode オブジェクトをこのAny オブジェクトのvalue フィールドに挿入します。 |
abstract void |
insert_ulong(int l)
指定された
int をこのAny オブジェクトのvalue フィールドに挿入します。 |
abstract void |
insert_ulonglong(long l)
指定された
long をこのAny オブジェクトのvalue フィールドに挿入します。 |
abstract void |
insert_ushort(short s)
指定された
short をこのAny オブジェクトのvalue フィールドに挿入します。 |
abstract void |
insert_Value(Serializable v)
指定された
java.io.Serializable オブジェクトをこのAny オブジェクトのvalue フィールドに挿入します。 |
abstract void |
insert_Value(Serializable v, TypeCode t)
指定された
java.io.Serializable オブジェクトをこのAny オブジェクトのvalue フィールドに挿入します。 |
abstract void |
insert_wchar(char c)
指定された
char をこのAny オブジェクトのvalue フィールドに挿入します。 |
abstract void |
insert_wstring(String s)
指定された
String オブジェクトをこのAny オブジェクトのvalue フィールドに挿入します。 |
abstract void |
read_value(InputStream is, TypeCode t)
指定された型コードを使用して、指定された入力ストリームから
Any オブジェクトの値を読み込み(非整列化し)ます。 |
abstract TypeCode |
type()
この
Any オブジェクトに格納されている要素の型情報を返します。 |
abstract void |
type(TypeCode t)
この
Any オブジェクトのtype フィールドを、指定されたTypeCode オブジェクトに設定し、その値をクリアします。 |
abstract void |
write_value(OutputStream os)
この
Any オブジェクトの値を指定された出力ストリームに書き込みます。 |
public abstract boolean equal(Any a)
Any
オブジェクトと指定されたAny
オブジェクトが等しいかどうかを判定します。2つのAny
オブジェクトは、値と型コードの両方が同じ場合に等しくなります。a
- 等しいかどうかが判定されるAny
オブジェクトAny
オブジェクトが等しい場合はtrue
、そうでない場合はfalse
CORBA
パッケージに実装されていない機能についてのコメントpublic abstract TypeCode type()
Any
オブジェクトに格納されている要素の型情報を返します。Any
オブジェクトに格納されている値の型情報を格納するTypeCode
オブジェクトpublic abstract void type(TypeCode t)
Any
オブジェクトのtype
フィールドを、指定されたTypeCode
オブジェクトに設定し、その値をクリアします。
このメソッドを使用して型コードを設定すると、値がある場合にその値が消されてしまうことに注意してください。このメソッドは、主にIDLのout
パラメータに対して型を正しく設定できるように提供されます。通常、型の設定はinsert_X
メソッドによって行われます。insert_Xメソッドは、型がまだXに設定されていない場合にその型をXに設定します。
t
- このAny
オブジェクトにある値の情報を提供するTypeCode
オブジェクトpublic abstract void read_value(InputStream is, TypeCode t) throws MARSHAL
Any
オブジェクトの値を読み込み(非整列化し)ます。is
- このAny
オブジェクトに格納されている値を読み込むorg.omg.CORBA.portable.InputStream
オブジェクトt
- 読み出される値の型情報を格納するTypeCode
オブジェクトMARSHAL
- 指定されたTypeCode
オブジェクトが入力ストリームに格納されていた値と一貫性がない場合public abstract void write_value(OutputStream os)
Any
オブジェクトの値を指定された出力ストリームに書き込みます。typecode
とvalue
の両方を書き込む必要がある場合は、create_output_stream()
を使用してOutputStream
を作成し、次にOutputStream
でwrite_any
を使用します。
値がvalue
フィールドに挿入されていないAny
オブジェクトからこのメソッドが呼び出された場合、このメソッドは例外java.lang.NullPointerException
をスローします。
os
- このAny
オブジェクトの値を整列化するorg.omg.CORBA.portable.OutputStream
オブジェクトpublic abstract OutputStream create_output_stream()
Any
オブジェクトの値を整列化できる出力ストリームを作成します。OutputStream
public abstract InputStream create_input_stream()
Any
オブジェクトの値を非整列化できる入力ストリームを作成します。InputStream
public abstract short extract_short() throws BAD_OPERATION
Any
オブジェクトのvalue
フィールドのshort
を抽出します。Any
オブジェクトに格納されたshort
BAD_OPERATION
- このAny
オブジェクトにshort
型の値以外のものが格納されている場合、またはvalue
フィールドがまだ設定されていない場合public abstract void insert_short(short s)
short
をこのAny
オブジェクトのvalue
フィールドに挿入します。s
- このAny
オブジェクトに挿入するshort
public abstract int extract_long() throws BAD_OPERATION
Any
オブジェクトのvalue
フィールドのint
を抽出します。Any
オブジェクトに格納されたint
BAD_OPERATION
- このAny
オブジェクトにint
型の値以外のものが格納されている場合、またはvalue
フィールドがまだ設定されていない場合public abstract void insert_long(int l)
int
をこのAny
オブジェクトのvalue
フィールドに挿入します。l
- このAny
オブジェクトに挿入するint
public abstract long extract_longlong() throws BAD_OPERATION
Any
オブジェクトのvalue
フィールドのlong
を抽出します。Any
オブジェクトに格納されたlong
BAD_OPERATION
- このAny
オブジェクトにlong
型の値以外のものが格納されている場合、またはvalue
フィールドがまだ設定されていない場合public abstract void insert_longlong(long l)
long
をこのAny
オブジェクトのvalue
フィールドに挿入します。l
- このAny
オブジェクトに挿入するlong
public abstract short extract_ushort() throws BAD_OPERATION
Any
オブジェクトのvalue
フィールドのshort
を抽出します。Any
オブジェクトに格納されたshort
BAD_OPERATION
- このAny
オブジェクトにshort
型の値以外のものが格納されている場合、またはvalue
フィールドがまだ設定されていない場合public abstract void insert_ushort(short s)
short
をこのAny
オブジェクトのvalue
フィールドに挿入します。s
- このAny
オブジェクトに挿入するshort
public abstract int extract_ulong() throws BAD_OPERATION
Any
オブジェクトのvalue
フィールドのint
を抽出します。Any
オブジェクトに格納されたint
BAD_OPERATION
- このAny
オブジェクトにint
型の値以外のものが格納されている場合、またはvalue
フィールドがまだ設定されていない場合public abstract void insert_ulong(int l)
int
をこのAny
オブジェクトのvalue
フィールドに挿入します。l
- このAny
オブジェクトに挿入するint
public abstract long extract_ulonglong() throws BAD_OPERATION
Any
オブジェクトのvalue
フィールドのlong
を抽出します。Any
オブジェクトに格納されたlong
BAD_OPERATION
- このAny
オブジェクトにlong
型の値以外のものが格納されている場合、またはvalue
フィールドがまだ設定されていない場合public abstract void insert_ulonglong(long l)
long
をこのAny
オブジェクトのvalue
フィールドに挿入します。l
- このAny
オブジェクトに挿入するlong
public abstract float extract_float() throws BAD_OPERATION
Any
オブジェクトのvalue
フィールドのfloat
を抽出します。Any
オブジェクトに格納されたfloat
BAD_OPERATION
- このAny
オブジェクトにfloat
型の値以外のものが格納されている場合、またはvalue
フィールドがまだ設定されていない場合public abstract void insert_float(float f)
float
をこのAny
オブジェクトのvalue
フィールドに挿入します。f
- このAny
オブジェクトに挿入するfloat
public abstract double extract_double() throws BAD_OPERATION
Any
オブジェクトのvalue
フィールドのdouble
を抽出します。Any
オブジェクトに格納されたdouble
BAD_OPERATION
- このAny
オブジェクトにdouble
型の値以外のものが格納されている場合、またはvalue
フィールドがまだ設定されていない場合public abstract void insert_double(double d)
double
をこのAny
オブジェクトのvalue
フィールドに挿入します。d
- このAny
オブジェクトに挿入するdouble
public abstract boolean extract_boolean() throws BAD_OPERATION
Any
オブジェクトのvalue
フィールドのboolean
を抽出します。Any
オブジェクトに格納されたboolean
BAD_OPERATION
- このAny
オブジェクトにboolean
型の値以外のものが格納されている場合、またはvalue
フィールドがまだ設定されていない場合public abstract void insert_boolean(boolean b)
boolean
をこのAny
オブジェクトのvalue
フィールドに挿入します。b
- このAny
オブジェクトに挿入するboolean
public abstract char extract_char() throws BAD_OPERATION
Any
オブジェクトのvalue
フィールドのchar
を抽出します。Any
オブジェクトに格納されたchar
BAD_OPERATION
- このAny
オブジェクトにchar
型の値以外のものが格納されている場合、またはvalue
フィールドがまだ設定されていない場合public abstract void insert_char(char c) throws DATA_CONVERSION
char
をこのAny
オブジェクトのvalue
フィールドに挿入します。c
- このAny
オブジェクトに挿入するchar
DATA_CONVERSION
- データ変換エラーがある場合public abstract char extract_wchar() throws BAD_OPERATION
Any
オブジェクトのvalue
フィールドのchar
を抽出します。Any
オブジェクトに格納されたchar
BAD_OPERATION
- このAny
オブジェクトにchar
型の値以外のものが格納されている場合、またはvalue
フィールドがまだ設定されていない場合public abstract void insert_wchar(char c)
char
をこのAny
オブジェクトのvalue
フィールドに挿入します。c
- このAny
オブジェクトに挿入するchar
public abstract byte extract_octet() throws BAD_OPERATION
Any
オブジェクトのvalue
フィールドのbyte
を抽出します。Any
オブジェクトに格納されたbyte
BAD_OPERATION
- このAny
オブジェクトにbyte
型の値以外のものが格納されている場合、またはvalue
フィールドがまだ設定されていない場合public abstract void insert_octet(byte b)
byte
をこのAny
オブジェクトのvalue
フィールドに挿入します。b
- このAny
オブジェクトに挿入するbyte
public abstract Any extract_any() throws BAD_OPERATION
Any
オブジェクトのvalue
フィールドのAny
オブジェクトを抽出します。Any
オブジェクトに格納されたAny
オブジェクトBAD_OPERATION
- このAny
オブジェクトにAny
オブジェクト以外のものが格納されている場合、またはvalue
フィールドがまだ設定されていない場合public abstract void insert_any(Any a)
Any
オブジェクトをこのAny
オブジェクトのvalue
フィールドに挿入します。a
- このAny
オブジェクトに挿入するAny
オブジェクトpublic abstract Object extract_Object() throws BAD_OPERATION
Any
オブジェクトのvalue
フィールドのorg.omg.CORBA.Object
を抽出します。Any
オブジェクトに格納されたorg.omg.CORBA.Object
BAD_OPERATION
- このAny
オブジェクトにorg.omg.CORBA.Object
型の値以外のものが格納されている場合、またはvalue
フィールドがまだ設定されていない場合public abstract void insert_Object(Object o)
org.omg.CORBA.Object
オブジェクトをこのAny
オブジェクトのvalue
フィールドに挿入します。o
- このAny
オブジェクトに挿入するorg.omg.CORBA.Object
オブジェクトpublic abstract Serializable extract_Value() throws BAD_OPERATION
Any
オブジェクトのvalue
フィールドのjava.io.Serializable
オブジェクトを抽出します。Any
オブジェクトに格納されたjava.io.Serializable
オブジェクトBAD_OPERATION
- このAny
オブジェクトにjava.io.Serializable
オブジェクト以外のものが格納されている場合、またはvalue
フィールドがまだ設定されていない場合public abstract void insert_Value(Serializable v)
java.io.Serializable
オブジェクトをこのAny
オブジェクトのvalue
フィールドに挿入します。v
- このAny
オブジェクトに挿入するjava.io.Serializable
オブジェクトpublic abstract void insert_Value(Serializable v, TypeCode t) throws MARSHAL
java.io.Serializable
オブジェクトをこのAny
オブジェクトのvalue
フィールドに挿入します。v
- このAny
オブジェクトに挿入するjava.io.Serializable
オブジェクトt
- このAny
オブジェクトのtype
フィールドに挿入され、挿入されるjava.io.Serializable
オブジェクトを説明するTypeCode
オブジェクトMARSHAL
- ORBにパラメータの整列化または非整列化の問題がある場合public abstract void insert_Object(Object o, TypeCode t) throws BAD_PARAM
org.omg.CORBA.Object
オブジェクトをこのAny
オブジェクトのvalue
フィールドに挿入します。o
- このAny
オブジェクトに挿入するorg.omg.CORBA.Object
インスタンスt
- このAny
オブジェクトに挿入され、挿入されるObject
を説明するTypeCode
オブジェクトBAD_OPERATION
- このAny
オブジェクトに対してこのメソッドが無効な場合BAD_PARAM
public abstract String extract_string() throws BAD_OPERATION
Any
オブジェクトのvalue
フィールドのString
オブジェクトを抽出します。Any
オブジェクトに格納されたString
オブジェクトBAD_OPERATION
- このAny
オブジェクトにString
オブジェクト以外のものが格納されている場合、またはvalue
フィールドがまだ設定されていない場合public abstract void insert_string(String s) throws DATA_CONVERSION, MARSHAL
String
オブジェクトをこのAny
オブジェクトのvalue
フィールドに挿入します。s
- このAny
オブジェクトに挿入するString
オブジェクトDATA_CONVERSION
- データ変換エラーがある場合MARSHAL
- ORBにパラメータの整列化または非整列化の問題がある場合public abstract String extract_wstring() throws BAD_OPERATION
Any
オブジェクトのvalue
フィールドのString
オブジェクトを抽出します。Any
オブジェクトに格納されたString
オブジェクトBAD_OPERATION
- このAny
オブジェクトにString
オブジェクト以外のものが格納されている場合、またはvalue
フィールドがまだ設定されていない場合public abstract void insert_wstring(String s) throws MARSHAL
String
オブジェクトをこのAny
オブジェクトのvalue
フィールドに挿入します。s
- このAny
オブジェクトに挿入するString
オブジェクトMARSHAL
- ORBにパラメータの整列化または非整列化の問題がある場合public abstract TypeCode extract_TypeCode() throws BAD_OPERATION
Any
オブジェクトのvalue
フィールドのTypeCode
オブジェクトを抽出します。Any
オブジェクトに格納されたTypeCode
オブジェクトBAD_OPERATION
- このAny
オブジェクトにTypeCode
オブジェクト以外のものが格納されている場合、またはvalue
フィールドがまだ設定されていない場合public abstract void insert_TypeCode(TypeCode t)
TypeCode
オブジェクトをこのAny
オブジェクトのvalue
フィールドに挿入します。t
- このAny
オブジェクトに挿入するTypeCode
オブジェクト@Deprecated public Principal extract_Principal() throws BAD_OPERATION
Any
オブジェクトのvalue
フィールドのPrincipal
オブジェクトを抽出します。Principal
クラスは非推奨であることに注意してください。Any
オブジェクトに格納されたPrincipal
オブジェクトBAD_OPERATION
- このAny
オブジェクトにPrincipal
オブジェクト以外のものが格納されている場合、またはvalue
フィールドがまだ設定されていない場合CORBA
パッケージに実装されていない機能についてのコメント@Deprecated public void insert_Principal(Principal p)
Principal
オブジェクトをこのAny
オブジェクトのvalue
フィールドに挿入します。Principal
クラスは非推奨であることに注意してください。p
- このAny
オブジェクトに挿入するPrincipal
オブジェクトCORBA
パッケージに実装されていない機能についてのコメントpublic Streamable extract_Streamable() throws BAD_INV_ORDER
Any
オブジェクトのvalue
フィールドからStreamable
を抽出します。このメソッドにより、非プリミティブIDL型の抽出が可能になります。Any
オブジェクトに格納されたStreamable
。BAD_INV_ORDER
- 呼出し側が間違った順序で処理を呼び出した場合CORBA
パッケージに実装されていない機能についてのコメントpublic void insert_Streamable(Streamable s)
Streamable
オブジェクトをこのAny
オブジェクトのvalue
フィールドに挿入します。このメソッドにより、非プリミティブIDL型の挿入が可能になります。s
- このAny
オブジェクトに挿入するStreamable
オブジェクト。非プリミティブIDL型も可能CORBA
パッケージに実装されていない機能についてのコメントpublic BigDecimal extract_fixed()
Any
オブジェクトのvalue
フィールドのjava.math.BigDecimal
オブジェクトを抽出します。Any
オブジェクトに格納されたjava.math.BigDecimal
オブジェクトBAD_OPERATION
- このAny
オブジェクトにjava.math.BigDecimal
オブジェクト以外のものが格納されている場合、またはvalue
フィールドがまだ設定されていない場合CORBA
パッケージに実装されていない機能についてのコメントpublic void insert_fixed(BigDecimal value)
org.omg.CORBA.NO_IMPLEMENT
例外をスローします。
指定されたjava.math.BigDecimal
オブジェクトをこのAny
オブジェクトのvalue
フィールドに挿入します。
value
- このAny
オブジェクトに挿入するjava.math.BigDecimal
オブジェクトCORBA
パッケージに実装されていない機能についてのコメントpublic void insert_fixed(BigDecimal value, TypeCode type) throws BAD_INV_ORDER
org.omg.CORBA.NO_IMPLEMENT
例外をスローします。
指定されたjava.math.BigDecimal
オブジェクトをこのAny
オブジェクトのvalue
フィールドに挿入します。
value
- このAny
オブジェクトに挿入するjava.math.BigDecimal
オブジェクトtype
- このAny
オブジェクトのtype
フィールドに挿入され、挿入されるjava.math.BigDecimal
オブジェクトを説明するTypeCode
オブジェクトBAD_INV_ORDER
- このメソッドの呼出しが適正でない場合CORBA
パッケージに実装されていない機能についてのコメント バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.