private boolean matches(CompiledObjectCollectionView view) throws ObjectNotFoundException, SchemaException { if (identifier != null) { if (!identifier.equals(view.getViewIdentifier())) { return false; } } // TODO: more criteria return true; }
private void compileDisplay(CompiledObjectCollectionView existingView, GuiObjectListViewType objectListViewType) { DisplayType newDisplay = objectListViewType.getDisplay(); if (newDisplay == null) { return; } if (existingView.getDisplay() == null) { existingView.setDisplay(newDisplay); } mergeDisplay(existingView.getDisplay(), newDisplay); }
public ObjectFilter getFilter() { return view.getFilter(); }
QName targetObjectType = existingView.getObjectType(); Class<? extends ObjectType> targetTypeClass = ObjectType.class; if (targetObjectType != null) { filter.setTargetTypeNullAsAny(true); filter.setRelationNullAsAny(true); existingView.setFilter(filter); DisplayType archetypeDisplay = archetypePolicy.getDisplay(); if (archetypeDisplay != null) { DisplayType viewDisplay = existingView.getDisplay(); if (viewDisplay == null) { viewDisplay = new DisplayType(); existingView.setDisplay(viewDisplay); LOGGER.warn("Archetype {} referenced from view {} was not found", collectionRef.getOid(), existingView.getViewIdentifier()); objectCollectionType = objectResolver.resolve(collectionRef, ObjectCollectionType.class, null, "view "+existingView.getViewIdentifier(), task, result); } catch (ObjectNotFoundException e) { throw new ConfigurationException(e.getMessage(), e); existingView.setFilter(collectionFilter); } else { compileCollection(existingView, baseCollectionSpec, task, result); ObjectFilter baseFilter = existingView.getFilter(); ObjectFilter combinedFilter = ObjectQueryUtil.filterAnd(baseFilter, collectionFilter, prismContext); existingView.setFilter(combinedFilter);
private void compileCollection(CompiledObjectCollectionView existingView, GuiObjectListViewType objectListViewType, Task task, OperationResult result) throws SchemaException, CommunicationException, ConfigurationException, SecurityViolationException, ExpressionEvaluationException { CollectionRefSpecificationType collectionSpec = objectListViewType.getCollection(); if (collectionSpec == null) { ObjectReferenceType collectionRef = objectListViewType.getCollectionRef(); if (collectionRef == null) { return; } // Legacy, deprecated collectionSpec = new CollectionRefSpecificationType(); collectionSpec.setCollectionRef(collectionRef.clone()); } if (existingView.getCollection() != null) { LOGGER.debug("Redefining collection in view {}", existingView.getViewIdentifier()); } existingView.setCollection(collectionSpec); compileCollection(existingView, collectionSpec, task, result); }
public DisplayTypeAsserter<ObjectCollectionViewAsserter<RA>> displayType() { DisplayTypeAsserter<ObjectCollectionViewAsserter<RA>> displayAsserter = new DisplayTypeAsserter<>(view.getDisplay(), this, "in " + desc()); copySetupTo(displayAsserter); return displayAsserter; }
private CompiledObjectCollectionView findOrCreateMatchingView(CompiledUserProfile composite, GuiObjectListViewType objectListViewType) { QName objectType = objectListViewType.getType(); String viewIdentifier = determineViewIdentifier(objectListViewType); CompiledObjectCollectionView existingView = composite.findObjectCollectionView(objectType, viewIdentifier); if (existingView == null) { existingView = new CompiledObjectCollectionView(objectType, viewIdentifier); composite.getObjectCollectionViews().add(existingView); } return existingView; }
private void compileActions(CompiledObjectCollectionView existingView, GuiObjectListViewType objectListViewType) { List<GuiActionType> newActions = objectListViewType.getAction(); for (GuiActionType newAction: newActions) { // TODO: check for action duplication/override existingView.getActions().add(newAction); // No need to clone, CompiledObjectCollectionView is not prism } }
public boolean match(QName expectedObjectType, String expectedViewIdentifier) { if (!QNameUtil.match(objectType, expectedObjectType)) { return false; } if (expectedViewIdentifier == null) { if (isAllObjectsView()) { return true; } else { return false; } } return expectedViewIdentifier.equals(viewIdentifier); }
private void compileColumns(CompiledObjectCollectionView existingView, GuiObjectListViewType objectListViewType) { List<GuiObjectColumnType> newColumns = objectListViewType.getColumn(); if (newColumns == null || newColumns.isEmpty()) { return; } // Not very efficient algorithm. But must do for now. List<GuiObjectColumnType> existingColumns = existingView.getColumns(); existingColumns.addAll(newColumns); List<GuiObjectColumnType> orderedList = orderCustomColumns(existingColumns); existingColumns.clear(); existingColumns.addAll(orderedList); }
private void applyViews(CompiledUserProfile composite, GuiObjectListViewsType viewsType, Task task, OperationResult result) throws SchemaException, CommunicationException, ConfigurationException, SecurityViolationException, ExpressionEvaluationException { if (viewsType == null) { return; } if (viewsType.getDefault() != null) { if (composite.getDefaultObjectCollectionView() == null) { composite.setDefaultObjectCollectionView(new CompiledObjectCollectionView()); } compileView(composite.getDefaultObjectCollectionView(), viewsType.getDefault(), task, result); } for (GuiObjectListViewType objectCollectionView : viewsType.getObjectList()) { // Compatibility, legacy applyView(composite, objectCollectionView, task, result); } for (GuiObjectListViewType objectCollectionView : viewsType.getObjectCollectionView()) { applyView(composite, objectCollectionView, task, result); } }
public <O extends ObjectType> CompiledObjectCollectionView findObjectViewByViewName(Class<O> compileTimeClass, String viewName){ if (compileTimeClass == null || StringUtils.isEmpty(viewName)){ return null; } List<CompiledObjectCollectionView> objectViews = findAllApplicableObjectCollectionViews(compileTimeClass); if (objectViews == null) { return null; } for (CompiledObjectCollectionView view : objectViews){ if (viewName.equals(view.getViewIdentifier())){ return view; } } return null; }
public ObjectCollectionViewAsserter<RA> assertFilter() { assertNotNull("Null filter in "+desc(), view.getFilter()); return this; }
public ObjectCollectionViewAsserter<RA> assertName(String expected) { assertEquals("Wrong view name in "+desc(), expected, view.getViewIdentifier()); return this; }