@@ -434,6 +434,13 @@ setMethod("==", signature(e1="BString", e2="character"),
434434setMethod(" ==" , signature(e1 = " character" , e2 = " BString" ),
435435 function (e1 , e2 ) e2 == e1
436436)
437+ setMethod(" ==" , signature(e1 = " XString" , e2 = " character" ),
438+ # # Coerce to BString to handle things like RNAString("U") == "T"
439+ function (e1 , e2 ) as(e1 , " BString" ) == e2
440+ )
441+ setMethod(" ==" , signature(e1 = " character" , e2 = " XString" ),
442+ function (e1 , e2 ) e1 == as(e2 , " BString" )
443+ )
437444
438445setMethod(" !=" , signature(e1 = " XString" , e2 = " XString" ),
439446 function (e1 , e2 ) ! (e1 == e2 )
@@ -444,7 +451,34 @@ setMethod("!=", signature(e1="BString", e2="character"),
444451setMethod(" !=" , signature(e1 = " character" , e2 = " BString" ),
445452 function (e1 , e2 ) ! (e1 == e2 )
446453)
454+ setMethod(" !=" , signature(e1 = " XString" , e2 = " character" ),
455+ function (e1 , e2 ) as(e1 , " BString" ) != e2
456+ )
457+ setMethod(" !=" , signature(e1 = " character" , e2 = " XString" ),
458+ function (e1 , e2 ) e1 != as(e2 , " BString" )
459+ )
447460
461+ # ## Comparisons are already implemented for XStringSet objects,
462+ # ## so we can just dispatch to that code here.
463+ setMethod(" <=" , signature(e1 = " XString" , e2 = " XString" ),
464+ function (e1 , e2 )
465+ {
466+ if (! comparable_seqtypes(seqtype(e1 ), seqtype(e2 ))) {
467+ class1 <- class(e1 )
468+ class2 <- class(e2 )
469+ stop(" comparison between a \" " , class1 , " \" instance " ,
470+ " and a \" " , class2 , " \" instance " ,
471+ " is not supported" )
472+ }
473+ as(e1 , " XStringSet" ) < = as(e2 , " XStringSet" )
474+ }
475+ )
476+ setMethod(" <=" , signature(e1 = " XString" , e2 = " character" ),
477+ function (e1 , e2 ) as(e1 , " BStringSet" ) < = e2
478+ )
479+ setMethod(" <=" , signature(e1 = " character" , e2 = " XString" ),
480+ function (e1 , e2 ) e1 < = as(e2 , " BStringSet" )
481+ )
448482
449483# ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
450484# ## The "substr" and "substring" methods.
0 commit comments