Examples of CriteriaQueryGenerator


Examples of org.rhq.enterprise.server.util.CriteriaQueryGenerator

    private Integer[] findGroupAlertDefinitionIds(int resourceGroupId) {
        AlertDefinitionCriteria criteria = new AlertDefinitionCriteria();
        criteria.addFilterResourceGroupIds(resourceGroupId);
        criteria.setPageControl(PageControl.getUnlimitedInstance());

        CriteriaQueryGenerator generator = new CriteriaQueryGenerator(criteria);
        generator.alterProjection("alertdefinition.id");
        Query query = generator.getQuery(entityManager);
        List<Integer> groupAlertDefinitionIds = query.getResultList();

        Integer[] results = groupAlertDefinitionIds.toArray(new Integer[groupAlertDefinitionIds.size()]);
        return results;
    }
View Full Code Here

Examples of org.rhq.enterprise.server.util.CriteriaQueryGenerator

        criteria.addFilterResourceIds(removedResourceIds);
        criteria.addFilterGroupAlertDefinitionGroupId(resourceGroupId);
        criteria.addFilterDeleted(false);
        criteria.clearPaging();

        CriteriaQueryGenerator generator = new CriteriaQueryGenerator(subject, criteria);
        CriteriaQueryRunner<AlertDefinition> queryRunner = new CriteriaQueryRunner<AlertDefinition>(criteria,
            generator, entityManager);
        List<AlertDefinition> alertDefinitions = queryRunner.execute();

        // No group alert defs, just return
View Full Code Here

Examples of org.rhq.enterprise.server.util.CriteriaQueryGenerator

                throw new PermissionException("Subject [" + subject.getName()
                    + "] requires InventoryManager permission for requested query criteria.");
            }
        }
       
        CriteriaQueryGenerator generator = new CriteriaQueryGenerator(subject, criteria);
        CriteriaQueryRunner<GroupDefinition> queryRunner = new CriteriaQueryRunner<GroupDefinition>(criteria,
            generator, entityManager);

        return queryRunner.execute();
    }
View Full Code Here

Examples of org.rhq.enterprise.server.util.CriteriaQueryGenerator

        return pingResults;
    }

    @RequiredPermission(Permission.MANAGE_SETTINGS)
    public PageList<Agent> findAgentsByCriteria(Subject subject, AgentCriteria criteria) {
        CriteriaQueryGenerator generator = new CriteriaQueryGenerator(subject, criteria);
        CriteriaQueryRunner<Agent> runner = new CriteriaQueryRunner<Agent>(criteria, generator, entityManager);
        return runner.execute();
    }
View Full Code Here

Examples of org.rhq.enterprise.server.util.CriteriaQueryGenerator

            criteria.addFilterResourceTypeId(context.resourceTypeId);
        }
        criteria.addFilterAgentId(agentId);

        try {
            CriteriaQueryGenerator generator = new CriteriaQueryGenerator(criteria);

            generator.alterProjection("resource.id");
            String resourceSubQuery = generator.getParameterReplacedQuery(false);

            String markResourceQueryString = "" //
                + "UPDATE Resource res " //
                + "   SET res.mtime = :now " //
                + " WHERE res.id IN ( " + resourceSubQuery + " ) ";
View Full Code Here

Examples of org.rhq.enterprise.server.util.CriteriaQueryGenerator

            criteria.addFilterAutoGroupParentResourceId(context.parentResourceId);
            criteria.addFilterAutoGroupResourceTypeId(context.resourceTypeId);
        }
        criteria.addFilterDefinitionIds(ArrayUtils.wrapInArray(measurementDefinitionIds));

        CriteriaQueryGenerator generator = new CriteriaQueryGenerator(subject, criteria);
        ;
        generator.alterProjection("measurementschedule.id");
        String measurementScheduleSubQuery = generator.getParameterReplacedQuery(false);

        return measurementScheduleSubQuery;
    }
View Full Code Here

Examples of org.rhq.enterprise.server.util.CriteriaQueryGenerator

        Map<Integer, Boolean> definitionEnabledMap = new HashMap<Integer, Boolean>();
        if (context.type == EntityContext.Type.ResourceTemplate) {
            MeasurementDefinitionCriteria criteria = new MeasurementDefinitionCriteria();
            criteria.addFilterResourceTypeId(context.resourceTypeId);

            CriteriaQueryGenerator generator = new CriteriaQueryGenerator(subject, criteria);
            CriteriaQueryRunner<MeasurementDefinition> queryRunner = new CriteriaQueryRunner(criteria, generator,
                entityManager);
            definitions = queryRunner.execute();
            for (MeasurementDefinition definition : definitions) {
                definitionIntervalMap.put(definition.getId(), definition.getDefaultInterval());
                definitionEnabledMap.put(definition.getId(), definition.isDefaultOn());
            }
        } else {
            // Do general criteria setup.
            MeasurementScheduleCriteria criteria = new MeasurementScheduleCriteria();

            switch (context.type) {
            case Resource:
                criteria.addFilterResourceId(context.resourceId);
                break;
            case ResourceGroup:
                criteria.addFilterResourceGroupId(context.groupId);
                break;
            case AutoGroup:
                criteria.addFilterAutoGroupParentResourceId(context.parentResourceId);
                criteria.addFilterAutoGroupResourceTypeId(context.resourceTypeId);
                break;
            }

            criteria.setPageControl(pc); // for primary return list, use passed PageControl
            pc.addDefaultOrderingField("definition.displayName");

            // Get the core definitions.
            CriteriaQueryGenerator generator = new CriteriaQueryGenerator(subject, criteria);

            // We previously used the following altered projection for the criteria query:
            //
            //   generator.alterProjection(" distinct measurementschedule.definition");
            //
            // Hibernate4 no longer allowed for the generated criteria JPQL for this projection:
            //
            //    SELECT distinct measurementschedule.definition
            //      FROM MeasurementSchedule measurementschedule
            // LEFT JOIN measurementschedule.definition orderingField0
            //     WHERE ( measurementschedule.resource.id IN ( :resourceId ) )
            //  ORDER BY orderingField0.displayName ASC
            //
            // It causes:
            //   SQLGrammarException: ERROR: for SELECT DISTINCT, ORDER BY expressions must appear in select list
            //
            // In essence, using DISTINCT now requires that we use the LEFT JOIN alias in the select
            // list.  To support this we could probably have made some tricky coding changes to the
            // generator. But seeing that this would be to support non-default criteria queries (i.e
            // the altered projection using DISTINCT), of which this is the only one in the code base,
            // and we are in control of the order by clause, and therefore are predictably working with
            // the JPQL above, I've chosen to just make a change to the custom altered projection, using
            // the JPQL to guide me.
            generator.alterProjection(" distinct orderingField0");
            generator.alterCountProjection(" count(distinct orderingField0)");
            CriteriaQueryRunner<MeasurementDefinition> queryRunner = new CriteriaQueryRunner(criteria, generator,
                entityManager);
            definitions = queryRunner.execute();

            // Reset paging -- remove ordering, add group by.
            criteria.setPageControl(PageControl.getUnlimitedInstance());
            generator.setGroupByClause(" measurementschedule.definition.id ");

            // Get the interval results.
            generator.alterProjection("" //
                + " measurementschedule.definition.id, " //
                + " min(measurementschedule.interval), " //
                + " max(measurementschedule.interval) ");
            Query query = generator.getQuery(entityManager);
            List<Object[]> definitionIntervalResults = query.getResultList();

            // Get the enabled results.
            criteria.addFilterEnabled(true);
            generator.alterProjection(" measurementschedule.definition.id, count(measurementschedule.id) ");
            query = generator.getQuery(entityManager);
            List<Object[]> definitionEnabledResults = query.getResultList();

            // Generate intermediate maps for intervals and enabled values.
            for (Object[] nextInterval : definitionIntervalResults) {
                int definitionId = (Integer) nextInterval[0];
View Full Code Here

Examples of org.rhq.enterprise.server.util.CriteriaQueryGenerator

        return 0;
    }

    @SuppressWarnings("unchecked")
    public PageList<MeasurementSchedule> findSchedulesByCriteria(Subject subject, MeasurementScheduleCriteria criteria) {
        CriteriaQueryGenerator generator = new CriteriaQueryGenerator(subject, criteria);
        ;
        if (authorizationManager.isInventoryManager(subject) == false) {
            generator.setAuthorizationResourceFragment(CriteriaQueryGenerator.AuthorizationTokenType.RESOURCE,
                subject.getId());
        }

        CriteriaQueryRunner<MeasurementSchedule> queryRunner = new CriteriaQueryRunner(criteria, generator,
            entityManager);
View Full Code Here

Examples of org.rhq.enterprise.server.util.CriteriaQueryGenerator

    @SuppressWarnings("unchecked")
    public PageList<InstalledPackageHistory> findInstalledPackageHistoryByCriteria(Subject subject,
        InstalledPackageHistoryCriteria criteria) {

        CriteriaQueryGenerator generator = new CriteriaQueryGenerator(subject, criteria);
        ;

        if (!authorizationManager.isInventoryManager(subject)) {
            // Ensure we limit to packages installed to viewable resources
            generator.setAuthorizationResourceFragment(CriteriaQueryGenerator.AuthorizationTokenType.RESOURCE,
                "resource", subject.getId());
        }

        CriteriaQueryRunner<InstalledPackageHistory> queryRunner = new CriteriaQueryRunner(criteria, generator,
            entityManager);
View Full Code Here

Examples of org.rhq.enterprise.server.util.CriteriaQueryGenerator

        return getPackageVersionCountFromRepo(subject, null, repoId);
    }

    @SuppressWarnings("unchecked")
    public PageList<Repo> findReposByCriteria(Subject subject, RepoCriteria criteria) {
        CriteriaQueryGenerator generator = new CriteriaQueryGenerator(subject, criteria);
        ;
       
        //TODO this needs the authz applied somehow
       
        CriteriaQueryRunner<Repo> queryRunner = new CriteriaQueryRunner(criteria, generator, entityManager);
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.