public <T extends ObjectType> QueryKey(Class<T> type, ObjectQuery query, PrismContext prismContext) { this.type = type; try { this.query = query != null ? prismContext.getQueryConverter().createQueryType(query) : null; } catch (SchemaException e) { throw new SystemException(e); } }
public <T extends ObjectType> QueryKey(Class<T> type, ObjectQuery query, ObjectSearchStrategyType searchStrategy, PrismContext prismContext) { this.type = type; try { this.query = query != null ? prismContext.getQueryConverter().createQueryType(query) : null; } catch (SchemaException e) { throw new SystemException(e); } this.searchStrategy = searchStrategy; }
private QueryType toQueryType(ObjectQuery query) throws Exception { return getQueryConverter().createQueryType(query); }
private QueryType toQueryType(ObjectQuery query) throws Exception { return getPrismContext().getQueryConverter().createQueryType(query); }
@Test public void testUserQuery() throws Exception { displayTestTitle("testUserQuery"); File[] userQueriesToTest = new File[] { new File(TEST_DIR, "filter-user-by-fullName.xml"), new File(TEST_DIR, "filter-user-by-name.xml"), new File(TEST_DIR, "filter-user-substring-fullName.xml"), new File(TEST_DIR, "filter-user-substring-employeeType.xml"), new File(TEST_DIR, "filter-user-substring-expression.xml"), new File(TEST_DIR, "filter-user-substring-anchor-start-end-expression.xml") }; // prismContext.silentMarshalObject(queryTypeNew, LOGGER); for (File file : userQueriesToTest) { SearchFilterType filterType = PrismTestUtil.parseAtomicValue(file, SearchFilterType.COMPLEX_TYPE); LOGGER.info("===[ query type parsed ]==="); ObjectQuery query; try { query = getQueryConverter().createObjectQuery(UserType.class, filterType); LOGGER.info("query converted: "); LOGGER.info("QUERY DUMP: {}", query.debugDump()); LOGGER.info("QUERY Pretty print: {}", query.toString()); System.out.println("QUERY Pretty print: " + query.toString()); QueryType convertedQueryType = getQueryConverter().createQueryType(query); LOGGER.info(DOMUtil.serializeDOMToString(convertedQueryType.getFilter().getFilterClauseAsElement(getPrismContext()))); } catch (Exception ex) { LOGGER.error("Error while converting query: {}", ex.getMessage(), ex); throw ex; } } }
@Test public void testConvertQueryNullFilter() throws Exception { ObjectQuery query = getQueryFactory().createQuery(getQueryFactory().createPaging(0, 10)); QueryType queryType = getQueryConverter().createQueryType(query); assertNotNull(queryType); assertNull(queryType.getFilter()); PagingType paging = queryType.getPaging(); assertNotNull(paging); assertEquals(new Integer(0), paging.getOffset()); assertEquals(new Integer(10), paging.getMaxSize()); }
private UserType searchUserByName(String name) throws Exception { // Document doc = DOMUtil.getDocument(); // Element nameElement = doc.createElementNS(SchemaConstants.C_NAME.getNamespaceURI(), // SchemaConstants.C_NAME.getLocalPart()); // nameElement.setTextContent(name); // Element filter = QueryUtil.createEqualFilter(doc, null, nameElement); // // QueryType query = new QueryType(); // query.setFilter(filter); ObjectQuery q = ObjectQueryUtil.createNameQuery(UserType.class, prismContext, name); QueryType query = prismContext.getQueryConverter().createQueryType(q); OperationResultType resultType = new OperationResultType(); Holder<OperationResultType> resultHolder = new Holder<>(resultType); Holder<ObjectListType> listHolder = new Holder<>(); assertNoRepoCache(); modelWeb.searchObjects(ObjectTypes.USER.getTypeQName(), query, null, listHolder, resultHolder); assertNoRepoCache(); ObjectListType objects = listHolder.value; TestUtil.assertSuccess("searchObjects has failed", resultHolder.value); AssertJUnit.assertEquals("User not found (or found too many)", 1, objects.getObject().size()); UserType user = (UserType) objects.getObject().get(0); AssertJUnit.assertEquals(user.getName(), PrismTestUtil.createPolyStringType(name)); return user; }
@Test public static void testSerializeTask() throws Exception { ObjectQuery query = getPrismContext().queryFor(ShadowType.class) .item(ShadowType.F_KIND).eq(ShadowKindType.ACCOUNT) .build(); QueryType queryType = getPrismContext().getQueryConverter().createQueryType(query); PrismPropertyDefinition queryDef = getPrismContext().definitionFactory().createPropertyDefinition( SchemaConstants.MODEL_EXTENSION_OBJECT_QUERY, QueryType.COMPLEX_TYPE); PrismProperty<QueryType> queryProp = queryDef.instantiate(); queryProp.setRealValue(queryType); TaskType taskType = getPrismContext().createObject(TaskType.class).asObjectable(); taskType.setExtension(new ExtensionType(getPrismContext())); taskType.getExtension().asPrismContainerValue().add(queryProp); taskType.setName(PolyStringType.fromOrig("Test task")); String xml = getPrismContext().xmlSerializer().serialize(taskType.asPrismObject()); System.out.println("Task serialized:\n" + xml); PrismObject<TaskType> taskParsed = getPrismContext().parserFor(xml).parse(); String xmlSerializedAgain = getPrismContext().xmlSerializer().serialize(taskParsed); System.out.println("Task serialized again:\n" + xmlSerializedAgain); }