From: <die...@us...> - 2011-01-13 11:09:33
|
Revision: 3235 http://openutils.svn.sourceforge.net/openutils/?rev=3235&view=rev Author: diego_schivo Date: 2011-01-13 11:09:27 +0000 (Thu, 13 Jan 2011) Log Message: ----------- PIRMEDIA-202 base path search Modified Paths: -------------- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/SearchFilter.java trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/SearchFilterAbstract.java trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/SearchFilter.java =================================================================== --- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/SearchFilter.java 2011-01-13 11:01:09 UTC (rev 3234) +++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/SearchFilter.java 2011-01-13 11:09:27 UTC (rev 3235) @@ -33,5 +33,7 @@ public interface SearchFilter { + String getBasePath(String parameter, HttpServletRequest request); + List<Criterion> getCriterionList(String parameter, HttpServletRequest request); } Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/SearchFilterAbstract.java =================================================================== --- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/SearchFilterAbstract.java 2011-01-13 11:01:09 UTC (rev 3234) +++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/SearchFilterAbstract.java 2011-01-13 11:09:27 UTC (rev 3235) @@ -67,6 +67,14 @@ /** * {@inheritDoc} */ + public String getBasePath(String parameter, HttpServletRequest request) + { + return null; + } + + /** + * {@inheritDoc} + */ @SuppressWarnings("unchecked") public List<Criterion> getCriterionList(String parameter, HttpServletRequest request) { Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java =================================================================== --- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java 2011-01-13 11:01:09 UTC (rev 3234) +++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java 2011-01-13 11:09:27 UTC (rev 3235) @@ -110,19 +110,14 @@ .setWorkspace(MediaModule.REPO) .add(Restrictions.eq("@jcr:primaryType", MediaConfigurationManager.MEDIA.getSystemName())); - // base path - String searchPath = StringUtils.removeEnd(StringUtils.defaultString(path, defaultBasePath), "/") - + "/" - + (descendants ? "/" : StringUtils.EMPTY) - + "*"; - c.setBasePath("/jcr:root/" + StringUtils.removeStart(searchPath, "/")); - // media type if (!StringUtils.isEmpty(mediaType)) { c.add(Restrictions.eq("@type", mediaType)); } + path = StringUtils.defaultString(path, defaultBasePath); + // filters for (String key : filters.keySet()) { @@ -131,13 +126,21 @@ // restriction on type already set continue; } - List<Criterion> criterionList = filters.get(key).getCriterionList(key, request); - for (Criterion criterion : criterionList) + SearchFilter filter = filters.get(key); + path = StringUtils.defaultString(filter.getBasePath(key, request), path); + for (Criterion criterion : filter.getCriterionList(key, request)) { c.add(criterion); } } + // base path + String searchPath = StringUtils.removeEnd(path, "/") + + "/" + + (descendants ? "/" : StringUtils.EMPTY) + + "*"; + c.setBasePath("/jcr:root/" + StringUtils.removeStart(searchPath, "/")); + // sorting if (sorting == SortMode.SCORE) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |