github.com/Axway/agent-sdk@v1.1.101/pkg/transaction/jmsprotocolbuilder.go (about) 1 package transaction 2 3 import ( 4 "github.com/Axway/agent-sdk/pkg/traceability/redaction" 5 ) 6 7 // JMSProtocolBuilder - Interface to build the JMS protocol details for transaction log event 8 type JMSProtocolBuilder interface { 9 SetMessageID(messageID string) JMSProtocolBuilder 10 SetCorrelationID(correlationID string) JMSProtocolBuilder 11 SetAuthSubjectID(authSubjectID string) JMSProtocolBuilder 12 SetDestination(destination string) JMSProtocolBuilder 13 SetProviderURL(providerURL string) JMSProtocolBuilder 14 SetDeliveryMode(deliveryMode int) JMSProtocolBuilder 15 SetPriority(priority int) JMSProtocolBuilder 16 SetReplyTo(replyTo string) JMSProtocolBuilder 17 SetRedelivered(redelivered int) JMSProtocolBuilder 18 SetTimestamp(timestamp int) JMSProtocolBuilder 19 SetExpiration(expiration int) JMSProtocolBuilder 20 SetJMSType(jmsType string) JMSProtocolBuilder 21 SetStatus(status string) JMSProtocolBuilder 22 SetStatusText(statusText string) JMSProtocolBuilder 23 24 Build() (TransportProtocol, error) 25 } 26 27 type jmsProtocolBuilder struct { 28 JMSProtocolBuilder 29 err error 30 jmsProtocol *JMSProtocol 31 } 32 33 // NewJMSProtocolBuilder - Creates a new JMS protocol builder 34 func NewJMSProtocolBuilder() JMSProtocolBuilder { 35 builder := &jmsProtocolBuilder{ 36 jmsProtocol: &JMSProtocol{ 37 Type: "jms", 38 }, 39 } 40 return builder 41 } 42 43 func (b *jmsProtocolBuilder) SetMessageID(messageID string) JMSProtocolBuilder { 44 if b.err != nil { 45 return b 46 } 47 b.jmsProtocol.JMSMessageID = messageID 48 return b 49 } 50 51 func (b *jmsProtocolBuilder) SetCorrelationID(correlationID string) JMSProtocolBuilder { 52 if b.err != nil { 53 return b 54 } 55 b.jmsProtocol.JMSCorrelationID = correlationID 56 return b 57 } 58 59 func (b *jmsProtocolBuilder) SetAuthSubjectID(authSubjectID string) JMSProtocolBuilder { 60 if b.err != nil { 61 return b 62 } 63 b.jmsProtocol.AuthSubjectID = authSubjectID 64 return b 65 } 66 67 func (b *jmsProtocolBuilder) SetDestination(destination string) JMSProtocolBuilder { 68 if b.err != nil { 69 return b 70 } 71 b.jmsProtocol.JMSDestination = destination 72 return b 73 } 74 75 func (b *jmsProtocolBuilder) SetProviderURL(providerURL string) JMSProtocolBuilder { 76 if b.err != nil { 77 return b 78 } 79 b.jmsProtocol.JMSProviderURL = providerURL 80 return b 81 } 82 83 func (b *jmsProtocolBuilder) SetDeliveryMode(deliveryMode int) JMSProtocolBuilder { 84 if b.err != nil { 85 return b 86 } 87 b.jmsProtocol.JMSDeliveryMode = deliveryMode 88 return b 89 } 90 91 func (b *jmsProtocolBuilder) SetPriority(priority int) JMSProtocolBuilder { 92 if b.err != nil { 93 return b 94 } 95 b.jmsProtocol.JMSPriority = priority 96 return b 97 } 98 99 func (b *jmsProtocolBuilder) SetReplyTo(replyTo string) JMSProtocolBuilder { 100 if b.err != nil { 101 return b 102 } 103 b.jmsProtocol.JMSReplyTo = replyTo 104 return b 105 } 106 107 func (b *jmsProtocolBuilder) SetRedelivered(redelivered int) JMSProtocolBuilder { 108 if b.err != nil { 109 return b 110 } 111 b.jmsProtocol.JMSRedelivered = redelivered 112 return b 113 } 114 115 func (b *jmsProtocolBuilder) SetTimestamp(timestamp int) JMSProtocolBuilder { 116 if b.err != nil { 117 return b 118 } 119 b.jmsProtocol.JMSTimestamp = timestamp 120 return b 121 } 122 123 func (b *jmsProtocolBuilder) SetExpiration(expiration int) JMSProtocolBuilder { 124 if b.err != nil { 125 return b 126 } 127 b.jmsProtocol.JMSExpiration = expiration 128 return b 129 } 130 131 func (b *jmsProtocolBuilder) SetJMSType(jmsType string) JMSProtocolBuilder { 132 b.jmsProtocol.JMSType = jmsType 133 return b 134 } 135 136 func (b *jmsProtocolBuilder) SetStatus(status string) JMSProtocolBuilder { 137 if b.err != nil { 138 return b 139 } 140 b.jmsProtocol.JMSStatus = status 141 return b 142 } 143 144 func (b *jmsProtocolBuilder) SetStatusText(statusText string) JMSProtocolBuilder { 145 if b.err != nil { 146 return b 147 } 148 b.jmsProtocol.JMSStatusText = statusText 149 return b 150 } 151 152 func (b *jmsProtocolBuilder) Build() (TransportProtocol, error) { 153 if b.err != nil { 154 return nil, b.err 155 } 156 157 jmsPropertyMap, err := b.jmsProtocol.ToMapStringString() 158 if err != nil { 159 return nil, err 160 } 161 162 // Handle the redaction of JMS Properties 163 redactedPropertyMap, err := redaction.JMSPropertiesRedaction(jmsPropertyMap) 164 if err != nil { 165 return nil, err 166 } 167 168 err = b.jmsProtocol.FromMapStringString(redactedPropertyMap) 169 if err != nil { 170 return nil, err 171 } 172 173 return b.jmsProtocol, nil 174 }