searchRequest.mediumSetPresentNumber = BigInteger.valueOf(mediumSetPresentNumber);
searchRequest.replaceIndicator = Boolean.TRUE;
searchRequest.resultSetName = resultSetName;
searchRequest.databaseNames = new ArrayList(query.getDatabases());
searchRequest.preferredRecordSyntax = ProtocolOIDRegister.getInstance().oidByName(this.recordSyntax);
searchRequest.smallSetElementSetNames = new ElementSetNames_type();
searchRequest.smallSetElementSetNames.which = ElementSetNames_type.genericelementsetname_CID;
searchRequest.smallSetElementSetNames.o = smallSetElementNames;
searchRequest.mediumSetElementSetNames = new ElementSetNames_type();
searchRequest.mediumSetElementSetNames.which = ElementSetNames_type.genericelementsetname_CID;
searchRequest.mediumSetElementSetNames.o = mediumSetElementNames;
searchRequest.query = Type1Encoder.encode(query, "utf-8");
return toPDU(PDU_type.searchrequest_CID, searchRequest);