in yoko-core/src/main/java/org/apache/yoko/orb/CORBA/TypeCode.java [469:618]
public boolean equal(org.omg.CORBA.TypeCode t) {
if (t == null)
return false;
if (t == this)
return true;
if (recId_ != null) {
if (recType_ == null)
throw new org.omg.CORBA.BAD_TYPECODE(
org.apache.yoko.orb.OB.MinorCodes
.describeBadTypecode(org.apache.yoko.orb.OB.MinorCodes.MinorIncompleteTypeCode),
org.apache.yoko.orb.OB.MinorCodes.MinorIncompleteTypeCode,
org.omg.CORBA.CompletionStatus.COMPLETED_NO);
return recType_.equal(t);
}
TypeCode tc = null;
try {
tc = (TypeCode) t;
} catch (ClassCastException ex) {
tc = _OB_convertForeignTypeCode(t);
}
if (tc.recId_ != null) {
if (tc.recType_ == null)
throw new org.omg.CORBA.BAD_PARAM(
org.apache.yoko.orb.OB.MinorCodes
.describeBadParam(org.apache.yoko.orb.OB.MinorCodes.MinorIncompleteTypeCodeParameter),
org.apache.yoko.orb.OB.MinorCodes.MinorIncompleteTypeCodeParameter,
org.omg.CORBA.CompletionStatus.COMPLETED_NO);
return equal(tc.recType_);
}
if (kind_ != tc.kind_)
return false;
if (kind_ == org.omg.CORBA.TCKind.tk_objref
|| kind_ == org.omg.CORBA.TCKind.tk_struct
|| kind_ == org.omg.CORBA.TCKind.tk_union
|| kind_ == org.omg.CORBA.TCKind.tk_enum
|| kind_ == org.omg.CORBA.TCKind.tk_alias
|| kind_ == org.omg.CORBA.TCKind.tk_value
|| kind_ == org.omg.CORBA.TCKind.tk_value_box
|| kind_ == org.omg.CORBA.TCKind.tk_native
|| kind_ == org.omg.CORBA.TCKind.tk_abstract_interface
|| kind_ == org.omg.CORBA.TCKind.tk_except
|| kind_ == org.omg.CORBA_2_4.TCKind.tk_local_interface) {
if (!id_.equals("") || !tc.id_.equals("")) {
if (id_.equals(tc.id_))
return true;
else
return false;
}
if (!name_.equals("") || !tc.name_.equals("")) {
if (!name_.equals(tc.name_))
return false;
}
}
if (kind_ == org.omg.CORBA.TCKind.tk_struct
|| kind_ == org.omg.CORBA.TCKind.tk_union
|| kind_ == org.omg.CORBA.TCKind.tk_enum
|| kind_ == org.omg.CORBA.TCKind.tk_value
|| kind_ == org.omg.CORBA.TCKind.tk_except) {
if (memberNames_.length != tc.memberNames_.length)
return false;
for (int i = 0; i < memberNames_.length; i++) {
if (!memberNames_[i].equals("")
|| !tc.memberNames_[i].equals("")) {
if (!memberNames_[i].equals(tc.memberNames_[i]))
return false;
}
}
}
if (kind_ == org.omg.CORBA.TCKind.tk_struct
|| kind_ == org.omg.CORBA.TCKind.tk_union
|| kind_ == org.omg.CORBA.TCKind.tk_value
|| kind_ == org.omg.CORBA.TCKind.tk_except) {
if (memberTypes_.length != tc.memberTypes_.length)
return false;
for (int i = 0; i < memberTypes_.length; i++)
if (!memberTypes_[i].equal(tc.memberTypes_[i]))
return false;
}
if (kind_ == org.omg.CORBA.TCKind.tk_union) {
if (labels_.length != tc.labels_.length)
return false;
for (int i = 0; i < labels_.length; i++) {
if (!labels_[i].type().equal(tc.labels_[i].type()))
return false;
if (!labels_[i].equal(tc.labels_[i]))
return false;
}
if (!discriminatorType_.equal(tc.discriminatorType_))
return false;
}
if (kind_ == org.omg.CORBA.TCKind.tk_string
|| kind_ == org.omg.CORBA.TCKind.tk_wstring
|| kind_ == org.omg.CORBA.TCKind.tk_sequence
|| kind_ == org.omg.CORBA.TCKind.tk_array) {
if (length_ != tc.length_)
return false;
}
if (kind_ == org.omg.CORBA.TCKind.tk_sequence
|| kind_ == org.omg.CORBA.TCKind.tk_array
|| kind_ == org.omg.CORBA.TCKind.tk_value_box
|| kind_ == org.omg.CORBA.TCKind.tk_alias) {
if (!contentType_.equal(tc.contentType_))
return false;
}
if (kind_ == org.omg.CORBA.TCKind.tk_fixed) {
if (fixedDigits_ != tc.fixedDigits_
|| fixedScale_ != tc.fixedScale_)
return false;
}
if (kind_ == org.omg.CORBA.TCKind.tk_value) {
if (memberVisibility_.length != tc.memberVisibility_.length)
return false;
for (int i = 0; i < memberVisibility_.length; i++)
if (memberVisibility_[i] != tc.memberVisibility_[i])
return false;
if (typeModifier_ != tc.typeModifier_)
return false;
if (concreteBaseType_ != null || tc.concreteBaseType_ != null) {
if (!(concreteBaseType_ != null && tc.concreteBaseType_ != null))
return false;
if (!(concreteBaseType_.equal(tc.concreteBaseType_)))
return false;
}
}
return true;
}