/** * Return the state of this object as a properties object. * @param strKey The key to return. * @return The properties. */ public Object get(String strKey) { Object objData = super.get(strKey); if (objData == null) if (m_mapMessageHeader != null) objData = m_mapMessageHeader.get(strKey); if (objData == null) if (m_mapMessageInfo != null) objData = m_mapMessageInfo.get(strKey); if (objData == null) if (m_mapMessageTransport != null) objData = m_mapMessageTransport.get(strKey); return objData; } /**
/** * Return the state of this object as a properties object. * @param strKey The key to return. * @return The properties. */ public Object get(String strKey) { Object objData = super.get(strKey); if (objData == null) if (m_mapMessageHeader != null) objData = m_mapMessageHeader.get(strKey); if (objData == null) if (m_mapMessageInfo != null) objData = m_mapMessageInfo.get(strKey); if (objData == null) if (m_mapMessageTransport != null) objData = m_mapMessageTransport.get(strKey); return objData; } /**
/** * Is this message a reply (or a request). * @param externalMessage The incomming message. * @return MessageType.MESSAGE_IN or MessageType.REPLY_IN If this is a reply. */ public String getMessageProcessType(BaseMessage externalMessage) { if (externalMessage.getMessageHeader() != null) if (externalMessage.getMessageHeader().get(TrxMessageHeader.MESSAGE_PROCESS_TYPE) != null) return (String)externalMessage.getMessageHeader().get(TrxMessageHeader.MESSAGE_PROCESS_TYPE); return MessageType.MESSAGE_IN; // Override this to check for sure. } /**
/** * Is this message a reply (or a request). * @param externalMessage The incoming message. * @return MessageType.MESSAGE_IN or MessageType.REPLY_IN If this is a reply. */ public String getMessageProcessType(BaseMessage externalMessage) { String strSubject = (String)externalMessage.getMessageHeader().get(EmailMessageTransport.SUBJECT_PARAM); if (strSubject != null) if (strSubject.toUpperCase().startsWith("RE:")) return MessageType.MESSAGE_IN; // This is (most likely) a reply to my message. return super.getMessageProcessType(externalMessage); } /**
/** * Is this message a reply (or a request). * @param externalMessage The incomming message. * @return MessageType.MESSAGE_IN or MessageType.REPLY_IN If this is a reply. */ public String getMessageInfoType(BaseMessage externalMessage) { if (externalMessage != null) if (externalMessage.getMessageHeader() != null) if (externalMessage.getMessageHeader().get(TrxMessageHeader.MESSAGE_INFO_TYPE) != null) return (String)externalMessage.getMessageHeader().get(TrxMessageHeader.MESSAGE_INFO_TYPE); return MessageInfoType.REQUEST; // Override this to check for sure. } /**
/** * Is this message a reply (or a request). * @param externalMessage The incomming message. * @return MessageType.MESSAGE_IN or MessageType.REPLY_IN If this is a reply. */ public String getMessageInfoType(BaseMessage externalMessage) { String strSubject = (String)externalMessage.getMessageHeader().get(EmailMessageTransport.SUBJECT_PARAM); if (strSubject != null) if (strSubject.toUpperCase().startsWith("RE:")) return MessageInfoType.REPLY; // This is (most likely) a reply to my message. return super.getMessageInfoType(externalMessage); } /**
/** * From this external message, figure out the message type. * @externalMessage The external message just received. * @return The message type for this kind of message (transport specific). */ public String getMessageVersion(BaseMessage externalTrxMessage) { if (externalTrxMessage.getMessageHeader() == null) return null; return (String)externalTrxMessage.getMessageHeader().get(MessageVersion.VERSION); } /**
/** * From this external message, figure out the message type. * @externalMessage The external message just received. * @return The message type for this kind of message (transport specific). */ public String getMessageCode(BaseMessage externalTrxMessage) { if (externalTrxMessage.getMessageHeader() == null) return null; return (String)externalTrxMessage.getMessageHeader().get(TrxMessageHeader.MESSAGE_CODE); } /**
String strClass = (String)message.getMessageHeader().get(DBParams.PROCESS); if ((strClass == null) || (strClass.length() == 0)) String strMessageCode = (String)message.getMessageHeader().get(BaseMessageHeader.MESSAGE_CODE); if ((strMessageCode == null) || (strMessageCode.length() == 0)) strClass = (String)message.getMessageHeader().get(DBParams.PROCESS); String strPackage = (String)message.getMessageHeader().get(BaseMessageHeader.BASE_PACKAGE); if (strPackage != null) if (strPackage.length() > 0)
String strClass = (String)message.getMessageHeader().get(TrxMessageHeader.MESSAGE_PROCESSOR_CLASS); if ((strClass == null) || (strClass.length() == 0)) String strMessageCode = (String)message.getMessageHeader().get(TrxMessageHeader.MESSAGE_CODE); if ((strMessageCode == null) || (strMessageCode.length() == 0)) recMessageProcessInfo.setupMessageHeaderFromCode((BaseMessage)message, strMessageCode, null); recMessageProcessInfo.free(); strClass = (String)message.getMessageHeader().get(TrxMessageHeader.MESSAGE_PROCESSOR_CLASS); String strPackage = (String)message.getMessageHeader().get(TrxMessageHeader.BASE_PACKAGE); if (strPackage != null) if (strPackage.length() > 0)
/** * Does the current user have permission to access this screen. * @return NORMAL_RETURN if access is allowed, ACCESS_DENIED or LOGIN_REQUIRED otherwise. */ public int checkSecurity() { int iErrorCode = super.checkSecurity(); if (iErrorCode == DBConstants.NORMAL_RETURN) { // Okay, their group can access this screen, but can this user access this data? BaseMessage message = this.getMessage(); String strContactID = (String)message.getMessageHeader().get(TrxMessageHeader.CONTACT_ID); String strContactType = (String)message.getMessageHeader().get(TrxMessageHeader.CONTACT_TYPE); iErrorCode = this.checkContactSecurity(strContactType, strContactID); } return iErrorCode; } /**
/** * Does the current user have permission to access this screen. * @return NORMAL_RETURN if access is allowed, ACCESS_DENIED or LOGIN_REQUIRED otherwise. */ public int checkSecurity() { int iErrorCode = super.checkSecurity(); if (iErrorCode == DBConstants.NORMAL_RETURN) { // Okay, their group can access this screen, but can this user access this data? BaseMessage message = this.getMessage(); String strContactID = (String)message.getMessageHeader().get(TrxMessageHeader.CONTACT_ID); String strContactType = (String)message.getMessageHeader().get(TrxMessageHeader.CONTACT_TYPE); iErrorCode = this.checkContactSecurity(strContactType, strContactID); } return iErrorCode; } /**
/** * Get the unmarshaller. * @return */ public BaseConvertToMessage getConvertToMessage() { if (m_convertToMessage == null) { BaseMessageHeader trxMessageHeader = this.getMessage().getMessageHeader(); String strMessageClass = (String)trxMessageHeader.get(TrxMessageHeader.MESSAGE_MARSHALLER_CLASS); String strPackage = (String)trxMessageHeader.get(TrxMessageHeader.BASE_PACKAGE); strMessageClass = ClassServiceUtility.getFullClassName(strPackage, strMessageClass); m_convertToMessage = (BaseConvertToMessage)ClassServiceUtility.getClassService().makeObjectFromClassName(strMessageClass); if (m_convertToMessage != null) m_convertToMessage.init(this); } return m_convertToMessage; } /**
/** * Get the unmarshaller. * @return */ public BaseConvertToNative getConvertToNative() { if (m_convertToNative == null) { BaseMessageHeader trxMessageHeader = this.getMessage().getMessageHeader(); String strMessageClass = (String)trxMessageHeader.get(TrxMessageHeader.MESSAGE_MARSHALLER_CLASS); String strPackage = (String)trxMessageHeader.get(TrxMessageHeader.BASE_PACKAGE); strMessageClass = ClassServiceUtility.getFullClassName(strPackage, strMessageClass); m_convertToNative = (BaseConvertToNative)ClassServiceUtility.getClassService().makeObjectFromClassName(strMessageClass); if (m_convertToNative != null) m_convertToNative.init(this); } return m_convertToNative; } /**
/** * Get the external message container for this Internal message. * Typically, the overriding class supplies a default format for the transport type. * <br/>NOTE: The message header from the internal message is copies, but not the message itself. * @param The internalTrxMessage that I will convert to this external format. * @return The (empty) External message. */ public ExternalMessage createExternalMessage(BaseMessage message, Object rawData) { ExternalMessage externalTrxMessage = super.createExternalMessage(message, rawData); if (externalTrxMessage == null) { if ((message.getMessageHeader() != null) && (MessageType.MESSAGE_IN.equals((String)message.getMessageHeader().get(TrxMessageHeader.MESSAGE_PROCESS_TYPE)))) externalTrxMessage = new EMailTrxMessageIn(message, (String)rawData); else externalTrxMessage = new EMailTrxMessageOut(message, rawData); } return externalTrxMessage; } /**
/** * Get the external message container for this Internal message. * Typically, the overriding class supplies a default format for the transport type. * <br/>NOTE: The message header from the internal message is copies, but not the message itself. * @param The internalTrxMessage that I will convert to this external format. * @return The (empty) External message. */ public ExternalMessage createExternalMessage(BaseMessage message, Object rawData) { ExternalMessage externalTrxMessage = super.createExternalMessage(message, rawData); if (externalTrxMessage == null) { if ((message.getMessageHeader() != null) && (MessageType.MESSAGE_IN.equals((String)message.getMessageHeader().get(TrxMessageHeader.MESSAGE_PROCESS_TYPE)))) externalTrxMessage = new ExternalMapTrxMessageIn(message, rawData); else externalTrxMessage = new ExternalMapTrxMessageOut(message, rawData); } return externalTrxMessage; } /**
/** * Get the external message container for this Internal message. * Typically, the overriding class supplies a default format for the transport type. * <br/>NOTE: The message header from the internal message is copies, but not the message itself. * @param The internalTrxMessage that I will convert to this external format. * @return The (empty) External message. */ public ExternalMessage createExternalMessage(BaseMessage message, Object rawData) { ExternalMessage externalTrxMessage = super.createExternalMessage(message, rawData); if (externalTrxMessage == null) { if ((message.getMessageHeader() != null) && (MessageType.MESSAGE_IN.equals((String)message.getMessageHeader().get(TrxMessageHeader.MESSAGE_PROCESS_TYPE)))) externalTrxMessage = new ExternalMapTrxMessageIn(message, rawData); else externalTrxMessage = new ExternalMapTrxMessageOut(message, rawData); } return externalTrxMessage; } /**
/** * Create the response message for this message. * @return the response message (or null if none). */ public BaseMessage createReplyMessage(BaseMessage message) { Object objResponseID = message.getMessageHeader().get(TrxMessageHeader.MESSAGE_RESPONSE_ID); if (objResponseID == null) return null; // TODO (don) FIX this - return an error. MessageProcessInfo recMessageProcessInfo = this.getMessageProcessInfo(objResponseID.toString()); MessageInfo recMessageInfo = (MessageInfo)((ReferenceField)recMessageProcessInfo.getField(MessageProcessInfo.kMessageInfoID)).getReference(); BaseMessage replyMessage = new TreeMessage(null, null); MessageRecordDesc messageRecordDesc = recMessageInfo.createNewMessage(replyMessage, null); return replyMessage; } /**
if (message instanceof RecordMessage) String strRecordName = (String)message.getMessageHeader().get(RecordMessageHeader.TABLE_NAME); Object bookmark = ((RecordMessageHeader)message.getMessageHeader()).getBookmark(DBConstants.BOOKMARK_HANDLE); BookingDetail recBookingDetail = (BookingDetail)this.getMainRecord();