@Override public List<IContainer> findAllOccurrences(IKey key) throws NoResultException { String pathStr = findDictionary().getPath(key).toString(); Path path = new Path(NxsFactory.getInstance(), pathStr); path.removeUnsetParameters(); return findAllContainerByPath(path.getValue()); }
@Override public IPathParameter resolvePathParameter(IContainer item) { IPathParameter result = null; String[] groupParts = item.getName().split(Pattern.quote(mPathSeparator)); String[] pathParts = mPath.getValue().split(Pattern.quote(mPathSeparator)); String part, param, buff; // Parse the path for (int depth = 0; depth < groupParts.length; depth++) { if (depth < pathParts.length) { part = groupParts[depth]; param = pathParts[depth]; // If a parameter is defined if (param.matches(".*(" + mPath.PARAM_PATTERN + ")+.*")) { // Try to determine the parameter result buff = param.replaceFirst("^(.*)(" + mPath.PARAM_PATTERN + ".*)$", "$1"); part = part.substring(buff.length()); buff = param.replaceAll(".*" + mPath.PARAM_PATTERN, ""); part = part.replaceFirst(Pattern.quote(buff), ""); buff = param.replaceAll(".*" + mPath.PARAM_PATTERN + ".*", "$1"); result = new PathParameter( Factory.getFactory(getFactoryName()), ParameterType.SUBSTITUTION, buff, part); break; } } } return result; }