001: /*
002: * Copyright 2001 Sun Microsystems, Inc. All rights reserved.
003: * PROPRIETARY/CONFIDENTIAL. Use of this product is subject to license terms.
004: */
005:
006: package com.sun.portal.search.rdm;
007:
008: import com.sun.portal.search.soif.*;
009: import com.sun.portal.search.db.SToken;
010: import com.sun.portal.search.db.RDMSecurityManager;
011:
012: // XXX XXX do not want this dependency - replace with RDMContext?
013: import com.sun.portal.search.rdmserver.*;
014:
015: /**
016: * RDM Request Message
017: *
018: * The message contains an RDMHeader with an appropriate request type:
019: * RDM_RD_UPD_REQ
020: * RDM_RD_DEL_REQ
021: * RDM_SD_REQ
022: * RDM_SCH_REQ
023: * RDM_TAX_REQ
024: * RDM_STAT_REQ
025: *
026: */
027: public class RDMRequest {
028:
029: // XXX Interface with RDMServletRequest as impl?
030:
031: RDMHeader header;
032: RDMQuery query;
033: SOIFInputStream ss;
034: RDMServer rdmsvr; // really want an RDM session here
035: SToken st = null; // Security token - from http/RDM header XXX not set up yet
036: RDMTransaction txn = null; // Transaction - one day we might support this to the client
037:
038: /**
039: * create a new RDMRequest object by parsing the RDMHeader and
040: * RDMQuery objects from the given SOIF Stream.
041: */
042: public RDMRequest(SOIFInputStream ss) throws Exception {
043: header = new RDMHeader(ss);
044: if (header.getQueryLanguage() != null)
045: query = new RDMQuery(ss);
046: //RDMSecurityManager.getInstance().initRDMSToken(this);
047: //st = blah; XXX
048: //txn = blah;
049: this .ss = ss;
050: }
051:
052: public RDMRequest(RDMHeader hdr, RDMQuery qry) {
053: header = hdr;
054: query = qry;
055: }
056:
057: public RDMQuery getQuery() {
058: return query;
059: }
060:
061: public void setQuery(RDMQuery q) {
062: query = q;
063: }
064:
065: public RDMHeader getHeader() {
066: return header;
067: }
068:
069: public void setHeader(RDMHeader h) {
070: header = h;
071: }
072:
073: public RDMServer getRDMServer() {
074: return rdmsvr;
075: }
076:
077: public void setRDMServer(RDMServer s) {
078: rdmsvr = s;
079: }
080:
081: public SToken getSToken() {
082: return st;
083: }
084:
085: public void setSToken(SToken newtoken) {
086: st = newtoken;
087: }
088:
089: public RDMTransaction getTransaction() {
090: return txn;
091: }
092:
093: public void setTransaction(RDMTransaction t) {
094: txn = t;
095: }
096:
097: public SOIFInputStream getInputStream() {
098: return ss;
099: }
100:
101: public void setInputStream(SOIFInputStream ss) {
102: this .ss = ss;
103: }
104:
105: public void logRDM(String msg) {
106: rdmsvr.logRDM(this , msg);
107: }
108:
109: /** debug only - does not construct correct soif */
110: public String toString() {
111: String res = "" + header;
112: if (query != null && query.getSOIF() != null)
113: res += query.getSOIF();
114: return res;
115: }
116:
117: }
|