/** @return */ public SearchParameters getAsSearchParmeters() { SearchParameters searchParameters = new SearchParameters(); searchParameters.setDefaultFieldName(this.getDefaultFieldName()); searchParameters.setDefaultFTSFieldConnective( this.getDefaultFTSFieldConnective() == Connective.OR ? SearchParameters.Operator.OR : SearchParameters.Operator.AND); searchParameters.setDefaultFTSOperator( this.getDefaultFTSConnective() == Connective.OR ? SearchParameters.Operator.OR : SearchParameters.Operator.AND); searchParameters.setDefaultOperator( this.getDefaultFTSConnective() == Connective.OR ? SearchParameters.Operator.OR : SearchParameters.Operator.AND); searchParameters.setLanguage(SearchService.LANGUAGE_CMIS_ALFRESCO); if (this.getMaxItems() > 0) { searchParameters.setLimit(this.getMaxItems()); searchParameters.setLimitBy(LimitBy.FINAL_SIZE); searchParameters.setMaxItems(this.getMaxItems()); } searchParameters.setMaxPermissionChecks(this.getMaxPermissionChecks()); searchParameters.setMaxPermissionCheckTimeMillis(this.getMaxPermissionCheckTimeMillis()); searchParameters.setMlAnalaysisMode(this.getMlAnalaysisMode()); // searchParameters.setNamespace() TODO: Fix // searchParameters.setPermissionEvaluation() searchParameters.setQuery(this.getQuery()); searchParameters.setSkipCount(this.getSkipCount()); // searchParameters.addAllAttribute() for (Locale locale : this.getLocales()) { searchParameters.addLocale(locale); } for (QueryParameterDefinition queryParameterDefinition : this.getQueryParameterDefinitions()) { searchParameters.addQueryParameterDefinition(queryParameterDefinition); } // searchParameters.addQueryTemplate(name, template) // searchParameters.addSort() for (StoreRef storeRef : this.getStores()) { searchParameters.addStore(storeRef); } // searchParameters.addTextAttribute() searchParameters.setBulkFetchEnabled(isBulkFetchEnabled()); searchParameters.setQueryConsistency(this.getQueryConsistency()); searchParameters.setSinceTxId(getSinceTxId()); return searchParameters; }
/** * Get the value of the counter. * * @param parameters * @return * @throws Exception */ private String getCounter(Map<String, Object> parameters) throws Exception { String counter = "0"; switch ((String) parameters.get(PARAMETER_COUNTER)) { case PARAMETER_COUNTER_AUDIT_TRAIL: case PARAMETER_COUNTER_WORKFLOW_INSTANCES: case PARAMETER_COUNTER_WORKFLOW_TASKS: /* * TODO: The query should be defined using hibernate. */ Class.forName(properties.getProperty(DB_DRIVER)); java.sql.Connection dbConnection = DriverManager.getConnection( properties.getProperty(DB_URL), properties.getProperty(DB_USERNAME), properties.getProperty(DB_PASSWORD)); Statement dbStatement = dbConnection.createStatement(); String dbQuery = getDatabaseQuery(parameters); java.sql.ResultSet dbResultSet = dbStatement.executeQuery(dbQuery); if (dbResultSet.next()) { counter = String.valueOf(dbResultSet.getDouble(VALUE_FIELD)); } if (dbResultSet.next()) { throw new Exception( "Database query '" + dbQuery + "' with multiple results when only one is expected."); } if (dbStatement != null) dbStatement.close(); if (dbConnection != null) dbConnection.close(); break; case PARAMETER_COUNTER_ASPECTS: case PARAMETER_COUNTER_TYPES: SearchParameters searchParameters = new SearchParameters(); searchParameters.addStore(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE); searchParameters.setLanguage(SearchService.LANGUAGE_FTS_ALFRESCO); searchParameters.setPermissionEvaluation(PermissionEvaluationMode.NONE); searchParameters.setUseInMemorySort(false); searchParameters.setLimitBy(LimitBy.FINAL_SIZE); List<String> alfrescoQueries = getAlfrescoQueries(parameters); int sum = 0; for (int i = 0; i < alfrescoQueries.size(); ++i) { searchParameters.setQuery(alfrescoQueries.get(i)); org.alfresco.service.cmr.search.ResultSet resultSet = searchService.query(searchParameters); sum += resultSet.getNumberFound(); resultSet.close(); } counter = String.valueOf(sum); break; default: throw new Exception( "Parameter '" + PARAMETER_COUNTER + "' with value '" + ((String) parameters.get(PARAMETER_COUNTER)) + "' not admitted."); } return counter; }