/** * Transforms the request into its ebXML representation. * * @param request the request. Can be <code>null</code>. * @return the ebXML representation. <code>null</code> if the input was <code>null</code>. */ public EbXMLAdhocQueryRequest toEbXML(QueryRegistry request) { if (request == null) { return null; } Query query = request.getQuery(); EbXMLAdhocQueryRequest ebXML = createAdhocQueryRequest(query); query.accept(new ToEbXMLVisitor(ebXML)); ebXML.setReturnType(request.getReturnType().getCode()); return ebXML; }
/** * Transforms the ebXML representation into a request. * * @param ebXML the ebXML representation. Can be <code>null</code>. * @return the request. <code>null</code> if the input was <code>null</code>. */ public QueryRegistry fromEbXML(EbXMLAdhocQueryRequest ebXML) { if (ebXML == null) { return null; } String id = ebXML.getId(); QueryType queryType = id == null ? QueryType.SQL : QueryType.valueOfId(id); if (queryType == null) { return null; } Query query = createQuery(queryType); query.accept(new FromEbXMLVisitor(ebXML)); QueryRegistry queryRegistry = new QueryRegistry(query); queryRegistry.setReturnType(QueryReturnType.valueOfCode(ebXML.getReturnType())); return queryRegistry; }
private EbXMLAdhocQueryRequest createAdhocQueryRequest(Query query) { EbXMLFactory factory = query.getType() == QueryType.SQL ? factory21 : factory30; return factory.createAdhocQueryRequest(); }