1351c9607d0f3eb5f61b8c90cf53b997dc7744b7Andrew Forrest * The contents of this file are subject to the terms of the Common Development and
1351c9607d0f3eb5f61b8c90cf53b997dc7744b7Andrew Forrest * Distribution License (the License). You may not use this file except in compliance with the
1351c9607d0f3eb5f61b8c90cf53b997dc7744b7Andrew Forrest * You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
1351c9607d0f3eb5f61b8c90cf53b997dc7744b7Andrew Forrest * specific language governing permission and limitations under the License.
1351c9607d0f3eb5f61b8c90cf53b997dc7744b7Andrew Forrest * When distributing Covered Software, include this CDDL Header Notice in each file and include
1351c9607d0f3eb5f61b8c90cf53b997dc7744b7Andrew Forrest * the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
1351c9607d0f3eb5f61b8c90cf53b997dc7744b7Andrew Forrest * Header, with the fields enclosed by brackets [] replaced by your own identifying
1351c9607d0f3eb5f61b8c90cf53b997dc7744b7Andrew Forrest * information: "Portions copyright [year] [name of copyright owner]".
643f61a35863b4b796e636f959c8a4a86cfc02ceAndrew Forrest * Copyright 2013-2014 ForgeRock Inc.
1351c9607d0f3eb5f61b8c90cf53b997dc7744b7Andrew Forrestpackage org.forgerock.openam.entitlement.utils.indextree.treenodes;
c47136e8a98bb41be602220218123bff252b8d4aAndrew Forrestimport org.forgerock.openam.entitlement.utils.indextree.nodecontext.ContextKey;
c47136e8a98bb41be602220218123bff252b8d4aAndrew Forrestimport org.forgerock.openam.entitlement.utils.indextree.nodecontext.SearchContext;
c47136e8a98bb41be602220218123bff252b8d4aAndrew Forrest * Wildcard tree node that will match any character except for '#' and '?',
c47136e8a98bb41be602220218123bff252b8d4aAndrew Forrest * and any character where the previous character was a '/'.
1351c9607d0f3eb5f61b8c90cf53b997dc7744b7Andrew Forrest * @author apforrest
1351c9607d0f3eb5f61b8c90cf53b997dc7744b7Andrew Forrestpublic class SingleWildcardNode extends BasicTreeNode {
5375fb13cf3928b16586743744d88bd5fd7d8c37Andrew Forrest public boolean hasInterestIn(char value, SearchContext context) {
5375fb13cf3928b16586743744d88bd5fd7d8c37Andrew Forrest // Ignore illegal character unless it is the last character.
5375fb13cf3928b16586743744d88bd5fd7d8c37Andrew Forrest return context.has(ContextKey.LAST_CHARACTER);
c47136e8a98bb41be602220218123bff252b8d4aAndrew Forrest // Next URL level reached, so no longer interested.
c47136e8a98bb41be602220218123bff252b8d4aAndrew Forrest return false;
c47136e8a98bb41be602220218123bff252b8d4aAndrew Forrest // Make a note that the end of a URL level has been reached.