/** * @see org.opencms.file.collectors.A_CmsResourceCollector#getCreateTypeId(org.opencms.file.CmsObject, java.lang.String, java.lang.String) */ @Override public int getCreateTypeId(CmsObject cms, String collectorName, String param) throws CmsException { int result = -1; Map<String, String> paramsAsMap = getParamsAsMap(param); if (paramsAsMap.get(PARAM_CREATE_PATH) != null) { String solrParams = paramsAsMap.get(SOLR_PART); CmsSolrQuery q = new CmsSolrQuery( null, CmsRequestUtil.createParameterMap( solrParams, Boolean.valueOf(paramsAsMap.get(PARAM_DECODE_URL)).booleanValue(), cms.getRequestContext().getEncoding())); String type = CmsSolrQuery.getResourceType(q.getFilterQueries()); if (type != null) { result = OpenCms.getResourceManager().getResourceType(type).getTypeId(); } } return result; }
/** * @see org.opencms.file.collectors.I_CmsResourceCollector#getCreateParam(org.opencms.file.CmsObject, java.lang.String, java.lang.String) */ public String getCreateParam(CmsObject cms, String collectorName, String param) throws CmsDataAccessException { collectorName = collectorName == null ? COLLECTORS[1] : collectorName; switch (COLLECTORS_LIST.indexOf(collectorName)) { case 0: // byQuery case 1: // byContext // check if the param supports resource creation Map<String, String> paramsAsMap = getParamsAsMap(param); CmsSolrQuery q = new CmsSolrQuery( null, CmsRequestUtil.createParameterMap( paramsAsMap.get(SOLR_PART), Boolean.valueOf(paramsAsMap.get(PARAM_DECODE_URL)).booleanValue(), cms.getRequestContext().getEncoding())); String type = CmsSolrQuery.getResourceType(q.getFilterQueries()); String path = paramsAsMap.get(PARAM_CREATE_PATH); if ((type != null) && (path != null)) { return param; } return null; default: throw new CmsDataAccessException( Messages.get().container(Messages.ERR_COLLECTOR_NAME_INVALID_1, collectorName)); } }
/** * @see org.opencms.file.collectors.I_CmsResourceCollector#getCreateLink(org.opencms.file.CmsObject, java.lang.String, java.lang.String) */ public String getCreateLink(CmsObject cms, String collectorName, String param) throws CmsException { collectorName = collectorName == null ? COLLECTORS[1] : collectorName; switch (COLLECTORS_LIST.indexOf(collectorName)) { case 0: // byQuery case 1: // byContext Map<String, String> paramsAsMap = getParamsAsMap(param); CmsSolrQuery q = new CmsSolrQuery( null, CmsRequestUtil.createParameterMap( paramsAsMap.get(SOLR_PART), Boolean.valueOf(paramsAsMap.get(PARAM_DECODE_URL)).booleanValue(), cms.getRequestContext().getEncoding())); String type = CmsSolrQuery.getResourceType(q.getFilterQueries()); String path = paramsAsMap.get(PARAM_CREATE_PATH); if ((type != null) && (path != null)) { return OpenCms.getResourceManager().getNameGenerator().getNewFileName(cms, path, 4); } return null; default: throw new CmsDataAccessException( Messages.get().container(Messages.ERR_COLLECTOR_NAME_INVALID_1, collectorName)); } }