package org.argeo.api.acr.search;
+/** AND filter based on the intersection composition. */
public class AndFilter extends ContentFilter<Intersection> {
public AndFilter() {
import javax.xml.namespace.QName;
-import org.argeo.api.acr.DName;
import org.argeo.api.acr.QNamed;
+/**
+ * A basic search mechanism modelled on WebDav basicsearch.
+ *
+ * @see http://www.webdav.org/specs/rfc5323.html
+ */
public class BasicSearch {
private List<QName> select = new ArrayList<>();
}
- static void main(String[] args) {
- BasicSearch search = new BasicSearch();
- search.select(DName.creationdate.qName()) //
- .from(URI.create("/test")) //
- .where((f) -> f.eq(DName.creationdate.qName(), ""));
- }
+// static void main(String[] args) {
+// BasicSearch search = new BasicSearch();
+// search.select(DName.creationdate.qName()) //
+// .from(URI.create("/test")) //
+// .where((f) -> f.eq(DName.creationdate.qName(), ""));
+// }
}
package org.argeo.api.acr.search;
+
+/** Marker interface for a composition of multiple constraints. */
interface Composition {
}
-
package org.argeo.api.acr.search;
+/** Marker interface for a constraint. */
public interface Constraint {
}
import javax.xml.namespace.QName;
-import org.argeo.api.acr.DName;
import org.argeo.api.acr.QNamed;
+/** A constraint filtering based ona given composition (and/or). */
public abstract class ContentFilter<COMPOSITION extends Composition> implements Constraint {
private Set<Constraint> constraintss = new HashSet<>();
}
- public static void main(String[] args) {
- AndFilter filter = new AndFilter();
- filter.eq(new QName("test"), "test").and().not().eq(new QName("type"), "integer");
-
- OrFilter unionFilter = new OrFilter();
- unionFilter.all((f) -> {
- f.eq(DName.displayname, "").and().eq(DName.creationdate, "");
- }).or().not().any((f) -> {
- f.eq(DName.creationdate, "").or().eq(DName.displayname, "");
- });
-
- }
+// public static void main(String[] args) {
+// AndFilter filter = new AndFilter();
+// filter.eq(new QName("test"), "test").and().not().eq(new QName("type"), "integer");
+//
+// OrFilter unionFilter = new OrFilter();
+// unionFilter.all((f) -> {
+// f.eq(DName.displayname, "").and().eq(DName.creationdate, "");
+// }).or().not().any((f) -> {
+// f.eq(DName.creationdate, "").or().eq(DName.displayname, "");
+// });
+//
+// }
}
package org.argeo.api.acr.search;
+
+/** A composition which is the intersection of sets (AND). */
class Intersection implements Composition {
ContentFilter<Intersection> filter;
}
}
-
package org.argeo.api.acr.search;
+/** OR filter based on the union composition. */
public class OrFilter extends ContentFilter<Union> {
public OrFilter() {
package org.argeo.api.acr.search;
+/** A composition which is the union of sets (OR). */
class Union implements Composition {
ContentFilter<Union> filter;
import org.argeo.cms.ux.widgets.AbstractHierarchicalPart;
import org.argeo.cms.ux.widgets.HierarchicalPart;
+/** A {@link HierarchicalPart} based on {@link Content}. */
public class ContentHierarchicalPart extends AbstractHierarchicalPart<Content> implements HierarchicalPart<Content> {
@Override
- public List<Content> getChildren(Content content) {
+ public List<Content> getChildren(Content parent) {
List<Content> res = new ArrayList<>();
- if (isLeaf(content))
+ if (isLeaf(parent))
return res;
- if (content == null)
+ if (parent == null)
return res;
- for (Iterator<Content> it = content.iterator(); it.hasNext();) {
+ for (Iterator<Content> it = parent.iterator(); it.hasNext();) {
res.add(it.next());
}