use of org.forgerock.json.resource.ResourcePath in project OpenAM by OpenRock.
the class MatchingResourcePath method equals.
@Override
public boolean equals(Object obj) {
ResourcePath comparePath;
if (obj instanceof MatchingResourcePath) {
comparePath = ((MatchingResourcePath) obj).resourcePath;
} else {
return false;
}
Iterator<String> compareElements = comparePath.iterator();
for (String element : resourcePath) {
if (!compareElements.hasNext()) {
return false;
}
String compare = compareElements.next();
if (element.startsWith("{") && element.endsWith("}")) {
if (!compare.startsWith("{") || !compare.endsWith("}")) {
return false;
}
} else if (!"*".equals(element) && !"*".equals(compare)) {
if (!element.equals(compare)) {
return false;
}
}
}
return !compareElements.hasNext();
}
use of org.forgerock.json.resource.ResourcePath in project OpenAM by OpenRock.
the class SmsRouteTreeBuilder method build.
/**
* Build the tree from the provided parent.
* @param parent The parent tree.
* @return The built sub-tree.
*/
SmsRouteTree build(@Nonnull SmsRouteTree parent) {
Router router = new Router();
ResourcePath path = SmsRouteTree.concat(parent.path, uriTemplate);
SmsRouteTree tree = new SmsRouteTree(parent.authzModules, parent.defaultAuthzModule, false, router, null, path);
for (SmsRouteTreeBuilder subTreeBuilder : subTreeBuilders) {
tree.addSubTree(subTreeBuilder.build(tree));
}
parent.router.addRoute(RoutingMode.STARTS_WITH, uriTemplate(uriTemplate), router);
if (handlesFunction != null) {
tree.addSubTree(new SmsRouteTreeLeaf(parent.authzModules, parent.defaultAuthzModule, router, handlesFunction, null, path));
}
return tree;
}
Aggregations