summaryrefslogtreecommitdiffstats
path: root/pki/base/common/src/com/netscape/certsrv/pattern/Pattern.java
diff options
context:
space:
mode:
Diffstat (limited to 'pki/base/common/src/com/netscape/certsrv/pattern/Pattern.java')
-rw-r--r--pki/base/common/src/com/netscape/certsrv/pattern/Pattern.java84
1 files changed, 40 insertions, 44 deletions
diff --git a/pki/base/common/src/com/netscape/certsrv/pattern/Pattern.java b/pki/base/common/src/com/netscape/certsrv/pattern/Pattern.java
index 36cc7cb3b..bce3a426b 100644
--- a/pki/base/common/src/com/netscape/certsrv/pattern/Pattern.java
+++ b/pki/base/common/src/com/netscape/certsrv/pattern/Pattern.java
@@ -17,34 +17,31 @@
// --- END COPYRIGHT BLOCK ---
package com.netscape.certsrv.pattern;
-
import java.util.Enumeration;
import com.netscape.certsrv.base.EBaseException;
import com.netscape.certsrv.base.IAttrSet;
-
/**
* This is a generic pattern subtitution engine. The
* pattern format should be:
* <p>
- * $[attribute set key].[attribute name]$
+ * $[attribute set key].[attribute name]$
* <p>
* For example,
* <p>
- * $request.requestor_email$
- * $ctx.user_id$
+ * $request.requestor_email$ $ctx.user_id$
* <p>
- *
+ *
* @version $Revision$, $Date$
*/
public class Pattern {
private String mS = null;
-
+
/**
* Constructs a pattern object with the given string.
- *
+ *
* @param s string with pattern (i.e. $request.requestor_email$)
*/
public Pattern(String s) {
@@ -53,7 +50,7 @@ public class Pattern {
/**
* Subtitutes this pattern with the given attribute set.
- *
+ *
* @param key key name of the given attribute set
* @param attrSet attribute set
* @return substituted string
@@ -64,7 +61,7 @@ public class Pattern {
/**
* Subtitutes this pattern with the given attribute set.
- *
+ *
* @param attrSetCollection attribute set collection
* @return substituted string
*/
@@ -76,24 +73,24 @@ public class Pattern {
String key = (String) keys.nextElement();
Pattern p = new Pattern(temp);
- temp = p.substitute(key,
+ temp = p.substitute(key,
attrSetCollection.getAttrSet(key));
-
+
}
return temp;
}
/**
* Subtitutes this pattern with the given attribute set.
- *
- * This is an extended version of the substitute() method.
- * It takes a more flexible pattern format that could have
- * non-token ($...$) format. e.g.
- * $request.screenname$@redhat.com
- * where "@redhat.com" is not in token pattern format, and will be
- * literally put in place. e.g.
- * TomRiddle@redhat.com
- *
+ *
+ * This is an extended version of the substitute() method.
+ * It takes a more flexible pattern format that could have
+ * non-token ($...$) format. e.g.
+ * $request.screenname$@redhat.com
+ * where "@redhat.com" is not in token pattern format, and will be
+ * literally put in place. e.g.
+ * TomRiddle@redhat.com
+ *
* @param key key name of the given attribute set
* @param attrSet attribute set
* @return substituted string
@@ -105,39 +102,39 @@ public class Pattern {
int lastPos;
do {
- // from startPos to right before '$' or end of string
- // need to be copied over
-
+ // from startPos to right before '$' or end of string
+ // need to be copied over
+
lastPos = mS.indexOf('$', startPos);
- // if no '$', return the entire string
+ // if no '$', return the entire string
if (lastPos == -1 && startPos == 0)
- return mS;
+ return mS;
- // no more '$' found, copy the rest of chars, done
+ // no more '$' found, copy the rest of chars, done
if (lastPos == -1) {
- sb.append(mS.substring(startPos)); //
- return sb.toString(); //
- // continue;
- }
+ sb.append(mS.substring(startPos)); //
+ return sb.toString(); //
+ // continue;
+ }
- // found '$'
+ // found '$'
if (startPos < lastPos) {
- sb.append(mS.substring(startPos, lastPos));
+ sb.append(mS.substring(startPos, lastPos));
}
- // look for the ending '$'
+ // look for the ending '$'
int endPos = mS.indexOf('$', lastPos + 1);
String token = mS.substring(lastPos + 1, endPos);
int dotPos = token.indexOf('.');
- // it's assuming there's always a '.'
+ // it's assuming there's always a '.'
String attrKey = token.substring(0, dotPos);
String attrName = token.substring(dotPos + 1);
if (!key.equals(attrKey)) {
startPos = endPos + 1;
- sb.append("$" + attrKey + "." + attrName + "$");
+ sb.append("$" + attrKey + "." + attrName + "$");
continue;
}
@@ -145,20 +142,19 @@ public class Pattern {
Object o = attrSet.get(attrName);
if (!(o instanceof String)) {
- startPos = endPos + 1;
- // if no such attrName, copy the token pattern over
- sb.append("$" + attrKey + "." + attrName + "$");
+ startPos = endPos + 1;
+ // if no such attrName, copy the token pattern over
+ sb.append("$" + attrKey + "." + attrName + "$");
continue;
}
String val = (String) o;
- sb.append(val);
+ sb.append(val);
} catch (EBaseException e) {
- sb.append("$" + attrKey + "." + attrName + "$");
+ sb.append("$" + attrKey + "." + attrName + "$");
}
- startPos = endPos + 1;
- }
- while (lastPos != -1);
+ startPos = endPos + 1;
+ } while (lastPos != -1);
return sb.toString();
}