Author: sadeep
Date: Sun Mar 4 13:01:41 2012
New Revision: 1296796
URL: http://svn.apache.org/viewvc?rev=1296796&view=rev
Log:
Adding comments to PayloadFactorMediator class
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/PayloadFactoryMediator.java
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/PayloadFactoryMediator.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/PayloadFactoryMediator.java?rev=1296796&r1=1296795&r2=1296796&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/PayloadFactoryMediator.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/PayloadFactoryMediator.java
Sun Mar 4 13:01:41 2012
@@ -43,11 +43,27 @@ import java.util.regex.Pattern;
*/
public class PayloadFactoryMediator extends AbstractMediator {
+ /**
+ * Stores the new payload format.
+ */
private String format;
+
+ /**
+ * Stores the argument list, argument values are computed dynamically at
mediation time.
+ */
private List<Argument> argumentList = new ArrayList<Argument>();
+ /**
+ * Pattern object used for regex processing. This finds occurrences of $n,
where n is a positive
+ * number, to replace them with argument values.
+ */
private Pattern pattern = Pattern.compile("\\$(\\d)+");
+ /**
+ * Replaces the existing payload with a new payload as defined by the
format and the argument list
+ * @param synCtx the current message for mediation
+ * @return true if the transformation is successful, false otherwise.
+ */
public boolean mediate(MessageContext synCtx) {
SOAPBody soapBody = synCtx.getEnvelope().getBody();
@@ -78,7 +94,13 @@ public class PayloadFactoryMediator exte
return true;
}
+ /**
+ * Replaces occurrences of $n with argument values.
+ * @param result StringBuffer that stores the result.
+ * @param synCtx Current message under mediation.
+ */
private void transformPayload(StringBuffer result, MessageContext synCtx) {
+
Object[] argValues = getArgValues(synCtx);
Matcher matcher = pattern.matcher("<dummy>" + format + "</dummy>");
while (matcher.find()) {
@@ -89,6 +111,11 @@ public class PayloadFactoryMediator exte
matcher.appendTail(result);
}
+ /**
+ * Extracts argument values from the current message context.
+ * @param synCtx Current message under mediation.
+ * @return Extracted argument values.
+ */
private Object[] getArgValues(MessageContext synCtx) {
Object[] argValues = new Object[argumentList.size()];