diff options
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.java | 84 |
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(); } |