Skip to content

Commit

Permalink
MID-9506: Added toSearchFilterType to Midpoint Query Serializer
Browse files Browse the repository at this point in the history
  • Loading branch information
tonydamage committed Mar 20, 2024
1 parent 25cccb8 commit 5d68e60
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,16 @@
package com.evolveum.midpoint.prism.query;

import com.evolveum.midpoint.prism.PrismNamespaceContext;
import com.evolveum.prism.xml.ns._public.query_3.SearchFilterType;

public interface PrismQuerySerialization {

PrismNamespaceContext namespaceContext();

String filterText();

SearchFilterType toSearchFilterType();

class NotSupportedException extends Exception {

private static final long serialVersionUID = -5393426442630191647L;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;

import com.evolveum.midpoint.prism.xnode.*;

import jakarta.xml.bind.annotation.XmlAccessType;
import jakarta.xml.bind.annotation.XmlAccessorType;
import jakarta.xml.bind.annotation.XmlElement;
Expand All @@ -23,10 +26,6 @@
import com.evolveum.midpoint.prism.binding.PlainStructured;
import com.evolveum.midpoint.prism.binding.StructuredEqualsStrategy;
import com.evolveum.midpoint.prism.binding.StructuredHashCodeStrategy;
import com.evolveum.midpoint.prism.xnode.MapXNode;
import com.evolveum.midpoint.prism.xnode.PrimitiveXNode;
import com.evolveum.midpoint.prism.xnode.RootXNode;
import com.evolveum.midpoint.prism.xnode.XNode;
import com.evolveum.midpoint.util.DOMUtil;
import com.evolveum.midpoint.util.DebugDumpable;
import com.evolveum.midpoint.util.DebugUtil;
Expand Down Expand Up @@ -78,6 +77,14 @@ public SearchFilterType(final SearchFilterType o) {
this.filterClauseXNode = o.filterClauseXNode.clone();
}

public SearchFilterType(String text, PrismNamespaceContext namespaceContext) {
super();
this.text = text;
var xnodeFactory = PrismContext.get().xnodeFactory();
var textNode = xnodeFactory.primitive(text);
filterClauseXNode = xnodeFactory.map(namespaceContext, F_TEXT, textNode);
}

public String getDescription() {
return description;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,16 @@
import java.util.Map;

import com.evolveum.axiom.concepts.Builder;
import com.evolveum.midpoint.prism.PrismConstants;
import com.evolveum.midpoint.prism.PrismContext;
import com.evolveum.midpoint.prism.PrismNamespaceContext;
import com.evolveum.midpoint.prism.impl.marshaller.QueryConverterImpl;
import com.evolveum.midpoint.prism.query.ObjectFilter;
import com.evolveum.midpoint.prism.query.PrismQueryExpressionFactory;
import com.evolveum.midpoint.prism.query.PrismQuerySerialization;
import com.evolveum.midpoint.prism.query.PrismQuerySerialization.NotSupportedException;
import com.evolveum.midpoint.prism.query.PrismQuerySerializer;
import com.evolveum.prism.xml.ns._public.query_3.SearchFilterType;

public class PrismQuerySerializerImpl implements PrismQuerySerializer {

Expand Down Expand Up @@ -56,7 +60,10 @@ public PrismNamespaceContext namespaceContext() {
return prefixes;
}


@Override
public SearchFilterType toSearchFilterType() {
return new SearchFilterType(filterText(), namespaceContext());
}
}


Expand Down

0 comments on commit 5d68e60

Please sign in to comment.