jackrabbit-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mreut...@apache.org
Subject svn commit: r572945 [2/3] - in /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core: ./ query/ query/lucene/ query/qom/
Date Wed, 05 Sep 2007 12:52:15 GMT
Added: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/DefaultTraversingQOMTreeVisitor.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/DefaultTraversingQOMTreeVisitor.java?rev=572945&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/DefaultTraversingQOMTreeVisitor.java (added)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/DefaultTraversingQOMTreeVisitor.java Wed Sep  5 05:52:12 2007
@@ -0,0 +1,264 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core.query.qom;
+
+/**
+ * <code>DefaultTraversingQOMTreeVisitor</code>...
+ */
+public class DefaultTraversingQOMTreeVisitor implements QOMTreeVisitor {
+
+    /**
+     * {@inheritDoc}
+     * <p/>
+     * Calls accept on each of the attached constraints of the AND node.
+     */
+    public final void visit(AndImpl node, Object data) {
+        ((ConstraintImpl) node.getConstraint1()).accept(this, data);
+        ((ConstraintImpl) node.getConstraint2()).accept(this, data);
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p/>
+     * Does nothing.
+     */
+    public void visit(BindVariableValueImpl node, Object data) {
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p/>
+     * Does nothing.
+     */
+    public void visit(ChildNodeImpl node, Object data) {
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p/>
+     * Does nothing.
+     */
+    public void visit(ChildNodeJoinConditionImpl node, Object data) {
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p/>
+     * Does nothing.
+     */
+    public void visit(ColumnImpl node, Object data) {
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p/>
+     * Calls accept on the two operands in the comparison node.
+     */
+    public void visit(ComparisonImpl node, Object data) {
+        ((DynamicOperandImpl) node.getOperand1()).accept(this, data);
+        ((StaticOperandImpl) node.getOperand2()).accept(this, data);
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p/>
+     * Does nothing.
+     */
+    public void visit(DescendantNodeImpl node, Object data) {
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p/>
+     * Does nothing.
+     */
+    public void visit(DescendantNodeJoinConditionImpl node, Object data) {
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p/>
+     * Does nothing.
+     */
+    public void visit(EquiJoinConditionImpl node, Object data) {
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p/>
+     * Does nothing.
+     */
+    public void visit(FullTextSearchImpl node, Object data) {
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p/>
+     * Does nothing.
+     */
+    public void visit(FullTextSearchScoreImpl node, Object data) {
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p/>
+     * Calls accept on the two sources and the join condition in the join node.
+     */
+    public void visit(JoinImpl node, Object data) {
+        ((SourceImpl) node.getRight()).accept(this, data);
+        ((SourceImpl) node.getLeft()).accept(this, data);
+        ((JoinConditionImpl) node.getJoinCondition()).accept(this, data);
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p/>
+     * Calls accept on the property value in the length node.
+     */
+    public void visit(LengthImpl node, Object data) {
+        ((PropertyValueImpl) node.getPropertyValue()).accept(this, data);
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p/>
+     * Calls accept on the dynamic operand in the lower-case node.
+     */
+    public void visit(LowerCaseImpl node, Object data) {
+        ((DynamicOperandImpl) node.getOperand()).accept(this, data);
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p/>
+     * Does nothing.
+     */
+    public void visit(NodeLocalNameImpl node, Object data) {
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p/>
+     * Does nothing.
+     */
+    public void visit(NodeNameImpl node, Object data) {
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p/>
+     * Calls accept on the constraint in the NOT node.
+     */
+    public void visit(NotImpl node, Object data) {
+        ((ConstraintImpl) node.getConstraint()).accept(this, data);
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p/>
+     * Calls accept on the dynamic operand in the ordering node.
+     */
+    public void visit(OrderingImpl node, Object data) {
+        ((DynamicOperandImpl) node.getOperand()).accept(this, data);
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p/>
+     * Calls accept on each of the attached constraints of the OR node.
+     */
+    public final void visit(OrImpl node, Object data) {
+        ((ConstraintImpl) node.getConstraint1()).accept(this, data);
+        ((ConstraintImpl) node.getConstraint2()).accept(this, data);
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p/>
+     * Does nothing.
+     */
+    public void visit(PropertyExistenceImpl node, Object data) {
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p/>
+     * Does nothing.
+     */
+    public void visit(PropertyValueImpl node, Object data) {
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p/>
+     * Calls accept on the following contained QOM nodes:
+     * <ul>
+     * <li>Source</li>
+     * <li>Constraints</li>
+     * <li>Orderings</li>
+     * <li>Columns</li>
+     * </ul>
+     */
+    public void visit(QueryObjectModelTree node, Object data) {
+        node.getSource().accept(this, data);
+        ConstraintImpl constraint = node.getConstraint();
+        if (constraint != null) {
+            constraint.accept(this, data);
+        }
+        OrderingImpl[] orderings = node.getOrderings();
+        for (int i = 0; i < orderings.length; i++) {
+            orderings[i].accept(this, data);
+        }
+        ColumnImpl[] columns = node.getColumns();
+        for (int i = 0; i < columns.length; i++) {
+            columns[i].accept(this, data);
+        }
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p/>
+     * Does nothing.
+     */
+    public void visit(SameNodeImpl node, Object data) {
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p/>
+     * Does nothing.
+     */
+    public void visit(SameNodeJoinConditionImpl node, Object data) {
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p/>
+     * Does nothing.
+     */
+    public void visit(SelectorImpl node, Object data) {
+    }
+
+    /**
+     * {@inheritDoc}
+     * <p/>
+     * Calls accept on the dynamic operand in the lower-case node.
+     */
+    public void visit(UpperCaseImpl node, Object data) {
+        ((DynamicOperandImpl) node.getOperand()).accept(this, data);
+    }
+}

Propchange: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/DefaultTraversingQOMTreeVisitor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/DescendantNodeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/DescendantNodeImpl.java?rev=572945&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/DescendantNodeImpl.java (added)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/DescendantNodeImpl.java Wed Sep  5 05:52:12 2007
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core.query.qom;
+
+import org.apache.jackrabbit.name.NamePathResolver;
+import org.apache.jackrabbit.name.QName;
+import org.apache.jackrabbit.name.Path;
+
+import org.apache.jackrabbit.core.query.jsr283.qom.DescendantNode;
+
+/**
+ * <code>DescendantNodeImpl</code>...
+ */
+public class DescendantNodeImpl 
+        extends ConstraintImpl
+        implements DescendantNode {
+
+    /**
+     * A selector name.
+     */
+    private final QName selectorName;
+
+    /**
+     * An absolute path.
+     */
+    private final Path path;
+
+    DescendantNodeImpl(NamePathResolver resolver,
+                       QName selectorName,
+                       Path path) {
+        super(resolver);
+        this.selectorName = selectorName;
+        this.path = path;
+    }
+
+    /**
+     * Gets the name of the selector against which to apply this constraint.
+     *
+     * @return the selector name; non-null
+     */
+    public String getSelectorName() {
+        return getJCRName(selectorName);
+    }
+
+    /**
+     * Gets the absolute path.
+     *
+     * @return the path; non-null
+     */
+    public String getPath() {
+        return getJCRPath(path);
+    }
+
+    //------------------------< AbstractQOMNode >-------------------------------
+
+    /**
+     * Accepts a <code>visitor</code> and calls the appropriate visit method
+     * depending on the type of this QOM node.
+     *
+     * @param visitor the visitor.
+     */
+    public void accept(QOMTreeVisitor visitor, Object data) {
+        visitor.visit(this, data);
+    }
+}

Propchange: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/DescendantNodeImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/DescendantNodeJoinConditionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/DescendantNodeJoinConditionImpl.java?rev=572945&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/DescendantNodeJoinConditionImpl.java (added)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/DescendantNodeJoinConditionImpl.java Wed Sep  5 05:52:12 2007
@@ -0,0 +1,78 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core.query.qom;
+
+import org.apache.jackrabbit.name.NamePathResolver;
+import org.apache.jackrabbit.name.QName;
+
+import org.apache.jackrabbit.core.query.jsr283.qom.DescendantNodeJoinCondition;
+
+/**
+ * <code>DescendantNodeJoinConditionImpl</code>...
+ */
+public class DescendantNodeJoinConditionImpl 
+        extends JoinConditionImpl
+        implements DescendantNodeJoinCondition {
+
+    /**
+     * Name of the descendant selector.
+     */
+    private final QName descendantSelectorName;
+
+    /**
+     * Name of the ancestor selector.
+     */
+    private final QName ancestorSelectorName;
+
+    DescendantNodeJoinConditionImpl(NamePathResolver resolver,
+                                    QName descendantSelectorName,
+                                    QName ancestorSelectorName) {
+        super(resolver);
+        this.descendantSelectorName = descendantSelectorName;
+        this.ancestorSelectorName = ancestorSelectorName;
+    }
+
+    /**
+     * Gets the name of the descendant selector.
+     *
+     * @return the selector name; non-null
+     */
+    public String getDescendantSelectorName() {
+        return getJCRName(descendantSelectorName);
+    }
+
+    /**
+     * Gets the name of the ancestor selector.
+     *
+     * @return the selector name; non-null
+     */
+    public String getAncestorSelectorName() {
+        return getJCRName(ancestorSelectorName);
+    }
+
+    //------------------------< AbstractQOMNode >-------------------------------
+
+    /**
+     * Accepts a <code>visitor</code> and calls the appropriate visit method
+     * depending on the type of this QOM node.
+     *
+     * @param visitor the visitor.
+     */
+    public void accept(QOMTreeVisitor visitor, Object data) {
+        visitor.visit(this, data);
+    }
+}

Propchange: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/DescendantNodeJoinConditionImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/DynamicOperandImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/DynamicOperandImpl.java?rev=572945&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/DynamicOperandImpl.java (added)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/DynamicOperandImpl.java Wed Sep  5 05:52:12 2007
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core.query.qom;
+
+import org.apache.jackrabbit.name.NamePathResolver;
+
+import org.apache.jackrabbit.core.query.jsr283.qom.DynamicOperand;
+
+/**
+ * <code>DynamicOperandImpl</code>...
+ */
+public abstract class DynamicOperandImpl
+        extends AbstractQOMNode
+        implements DynamicOperand {
+
+    public DynamicOperandImpl(NamePathResolver resolver) {
+        super(resolver);
+    }
+}

Propchange: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/DynamicOperandImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/EquiJoinConditionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/EquiJoinConditionImpl.java?rev=572945&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/EquiJoinConditionImpl.java (added)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/EquiJoinConditionImpl.java Wed Sep  5 05:52:12 2007
@@ -0,0 +1,110 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core.query.qom;
+
+import org.apache.jackrabbit.name.QName;
+import org.apache.jackrabbit.name.NamePathResolver;
+
+import org.apache.jackrabbit.core.query.jsr283.qom.EquiJoinCondition;
+
+/**
+ * <code>EquiJoinConditionImpl</code>...
+ */
+public class EquiJoinConditionImpl
+        extends JoinConditionImpl
+        implements EquiJoinCondition {
+
+    /**
+     * Name of the first selector.
+     */
+    private final QName selector1Name;
+
+    /**
+     * Property name in the first selector.
+     */
+    private final QName property1Name;
+
+    /**
+     * Name of the second selector.
+     */
+    private final QName selector2Name;
+
+    /**
+     * Property name in the second selector.
+     */
+    private final QName property2Name;
+
+    EquiJoinConditionImpl(NamePathResolver resolver,
+                          QName selector1Name,
+                          QName property1Name,
+                          QName selector2Name,
+                          QName property2Name) {
+        super(resolver);
+        this.selector1Name = selector1Name;
+        this.property1Name = property1Name;
+        this.selector2Name = selector2Name;
+        this.property2Name = property2Name;
+    }
+
+    /**
+     * Gets the name of the first selector.
+     *
+     * @return the selector name; non-null
+     */
+    public String getSelector1Name() {
+        return getJCRName(selector1Name);
+    }
+
+    /**
+     * Gets the property name in the first selector.
+     *
+     * @return the property name; non-null
+     */
+    public String getProperty1Name() {
+        return getJCRName(property1Name);
+    }
+
+    /**
+     * Gets the name of the second selector.
+     *
+     * @return the selector name; non-null
+     */
+    public String getSelector2Name() {
+        return getJCRName(selector2Name);
+    }
+
+    /**
+     * Gets the property name in the second selector.
+     *
+     * @return the property name; non-null
+     */
+    public String getProperty2Name() {
+        return getJCRName(property2Name);
+    }
+
+    //------------------------< AbstractQOMNode >-------------------------------
+
+    /**
+     * Accepts a <code>visitor</code> and calls the appropriate visit method
+     * depending on the type of this QOM node.
+     *
+     * @param visitor the visitor.
+     */
+    public void accept(QOMTreeVisitor visitor, Object data) {
+        visitor.visit(this, data);
+    }
+}

Propchange: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/EquiJoinConditionImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/FullTextSearchImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/FullTextSearchImpl.java?rev=572945&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/FullTextSearchImpl.java (added)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/FullTextSearchImpl.java Wed Sep  5 05:52:12 2007
@@ -0,0 +1,96 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core.query.qom;
+
+import org.apache.jackrabbit.name.QName;
+import org.apache.jackrabbit.name.NamePathResolver;
+
+import org.apache.jackrabbit.core.query.jsr283.qom.FullTextSearch;
+
+/**
+ * <code>FullTextSearchImpl</code>...
+ */
+public class FullTextSearchImpl
+        extends ConstraintImpl
+        implements FullTextSearch {
+
+    /**
+     * Name of the selector against which to apply this constraint
+     */
+    private final QName selectorName;
+
+    /**
+     * Name of the property.
+     */
+    private final QName propertyName;
+
+    /**
+     * Full text search expression.
+     */
+    private final String fullTextSearchExpression;
+
+    FullTextSearchImpl(NamePathResolver resolver,
+                       QName selectorName,
+                       QName propertyName,
+                       String fullTextSearchExpression) {
+        super(resolver);
+        this.selectorName = selectorName;
+        this.propertyName = propertyName;
+        this.fullTextSearchExpression = fullTextSearchExpression;
+    }
+
+    /**
+     * Gets the name of the selector against which to apply this constraint.
+     *
+     * @return the selector name; non-null
+     */
+    public String getSelectorName() {
+        return getJCRName(selectorName);
+    }
+
+    /**
+     * Gets the name of the property.
+     *
+     * @return the property name if the full-text search scope is a property,
+     *         otherwise null if the full-text search scope is the node (or node
+     *         subtree, in some implementations).
+     */
+    public String getPropertyName() {
+        return getJCRName(propertyName);
+    }
+
+    /**
+     * Gets the full-text search expression.
+     *
+     * @return the full-text search expression; non-null
+     */
+    public String getFullTextSearchExpression() {
+        return fullTextSearchExpression;
+    }
+
+    //------------------------< AbstractQOMNode >-------------------------------
+
+    /**
+     * Accepts a <code>visitor</code> and calls the appropriate visit method
+     * depending on the type of this QOM node.
+     *
+     * @param visitor the visitor.
+     */
+    public void accept(QOMTreeVisitor visitor, Object data) {
+        visitor.visit(this, data);
+    }
+}

Propchange: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/FullTextSearchImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/FullTextSearchScoreImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/FullTextSearchScoreImpl.java?rev=572945&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/FullTextSearchScoreImpl.java (added)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/FullTextSearchScoreImpl.java Wed Sep  5 05:52:12 2007
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core.query.qom;
+
+import org.apache.jackrabbit.name.NamePathResolver;
+import org.apache.jackrabbit.name.QName;
+
+import org.apache.jackrabbit.core.query.jsr283.qom.FullTextSearchScore;
+
+/**
+ * <code>FullTextSearchScoreImpl</code>...
+ */
+public class FullTextSearchScoreImpl
+        extends DynamicOperandImpl
+        implements FullTextSearchScore {
+
+    /**
+     * Name of the selector against which to evaluate this operand.
+     */
+    private final QName selectorName;
+
+    FullTextSearchScoreImpl(NamePathResolver resolver, QName selectorName) {
+        super(resolver);
+        this.selectorName = selectorName;
+    }
+
+    /**
+     * Gets the name of the selector against which to evaluate this operand.
+     *
+     * @return the selector name; non-null
+     */
+    public String getSelectorName() {
+        return getJCRName(selectorName);
+    }
+
+    //------------------------< AbstractQOMNode >-------------------------------
+
+    /**
+     * Accepts a <code>visitor</code> and calls the appropriate visit method
+     * depending on the type of this QOM node.
+     *
+     * @param visitor the visitor.
+     */
+    public void accept(QOMTreeVisitor visitor, Object data) {
+        visitor.visit(this, data);
+    }
+}

Propchange: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/FullTextSearchScoreImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/JoinConditionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/JoinConditionImpl.java?rev=572945&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/JoinConditionImpl.java (added)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/JoinConditionImpl.java Wed Sep  5 05:52:12 2007
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core.query.qom;
+
+import org.apache.jackrabbit.name.NamePathResolver;
+
+import org.apache.jackrabbit.core.query.jsr283.qom.JoinCondition;
+
+/**
+ * <code>JoinConditionImpl</code>...
+ */
+public abstract class JoinConditionImpl
+        extends AbstractQOMNode
+        implements JoinCondition {
+
+    public JoinConditionImpl(NamePathResolver resolver) {
+        super(resolver);
+    }
+}

Propchange: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/JoinConditionImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/JoinImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/JoinImpl.java?rev=572945&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/JoinImpl.java (added)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/JoinImpl.java Wed Sep  5 05:52:12 2007
@@ -0,0 +1,112 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core.query.qom;
+
+import org.apache.jackrabbit.name.NamePathResolver;
+
+import org.apache.jackrabbit.core.query.jsr283.qom.Join;
+import org.apache.jackrabbit.core.query.jsr283.qom.Source;
+import org.apache.jackrabbit.core.query.jsr283.qom.JoinCondition;
+
+/**
+ * <code>JoinImpl</code>...
+ */
+public class JoinImpl extends SourceImpl implements Join {
+
+    /**
+     * The left node-tuple source.
+     */
+    private final SourceImpl left;
+
+    /**
+     * The right node-tuple source.
+     */
+    private final SourceImpl right;
+
+    /**
+     * The join type.
+     */
+    private final int joinType;
+
+    /**
+     * The join condition.
+     */
+    private final JoinConditionImpl joinCondition;
+
+    JoinImpl(NamePathResolver resolver,
+             SourceImpl left,
+             SourceImpl right,
+             int joinType,
+             JoinConditionImpl joinCondition) {
+        super(resolver);
+        this.left = left;
+        this.right = right;
+        this.joinType = joinType;
+        this.joinCondition = joinCondition;
+    }
+
+    /**
+     * Gets the left node-tuple source.
+     *
+     * @return the left source; non-null
+     */
+    public Source getLeft() {
+        return left;
+    }
+
+    /**
+     * Gets the right node-tuple source.
+     *
+     * @return the right source; non-null
+     */
+    public Source getRight() {
+        return right;
+    }
+
+    /**
+     * Gets the join type.
+     *
+     * @return either <ul> <li>{@link org.apache.jackrabbit.core.query.jsr283.qom.QueryObjectModelConstants#JOIN_TYPE_INNER},</li>
+     *         <li>{@link org.apache.jackrabbit.core.query.jsr283.qom.QueryObjectModelConstants#JOIN_TYPE_LEFT_OUTER},</li>
+     *         <li>{@link org.apache.jackrabbit.core.query.jsr283.qom.QueryObjectModelConstants#JOIN_TYPE_RIGHT_OUTER}</li>
+     *         </ul>
+     */
+    public int getJoinType() {
+        return joinType;
+    }
+
+    /**
+     * Gets the join condition.
+     *
+     * @return the join condition; non-null
+     */
+    public JoinCondition getJoinCondition() {
+        return joinCondition;
+    }
+
+    //------------------------< AbstractQOMNode >-------------------------------
+
+    /**
+     * Accepts a <code>visitor</code> and calls the appropriate visit method
+     * depending on the type of this QOM node.
+     *
+     * @param visitor the visitor.
+     */
+    public void accept(QOMTreeVisitor visitor, Object data) {
+        visitor.visit(this, data);
+    }
+}

Propchange: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/JoinImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/LengthImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/LengthImpl.java?rev=572945&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/LengthImpl.java (added)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/LengthImpl.java Wed Sep  5 05:52:12 2007
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core.query.qom;
+
+import org.apache.jackrabbit.name.NamePathResolver;
+
+import org.apache.jackrabbit.core.query.jsr283.qom.Length;
+import org.apache.jackrabbit.core.query.jsr283.qom.PropertyValue;
+
+/**
+ * <code>LengthImpl</code>...
+ */
+public class LengthImpl extends DynamicOperandImpl implements Length {
+
+    /**
+     * Property value for which to compute the length.
+     */
+    private final PropertyValueImpl propertyValue;
+
+    LengthImpl(NamePathResolver resolver, PropertyValueImpl propertyValue) {
+        super(resolver);
+        this.propertyValue = propertyValue;
+    }
+
+    /**
+     * Gets the property value for which to compute the length.
+     *
+     * @return the property value; non-null
+     */
+    public PropertyValue getPropertyValue() {
+        return propertyValue;
+    }
+
+    //------------------------< AbstractQOMNode >-------------------------------
+
+    /**
+     * Accepts a <code>visitor</code> and calls the appropriate visit method
+     * depending on the type of this QOM node.
+     *
+     * @param visitor the visitor.
+     */
+    public void accept(QOMTreeVisitor visitor, Object data) {
+        visitor.visit(this, data);
+    }
+}

Propchange: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/LengthImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/LowerCaseImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/LowerCaseImpl.java?rev=572945&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/LowerCaseImpl.java (added)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/LowerCaseImpl.java Wed Sep  5 05:52:12 2007
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core.query.qom;
+
+import org.apache.jackrabbit.name.NamePathResolver;
+
+import org.apache.jackrabbit.core.query.jsr283.qom.LowerCase;
+import org.apache.jackrabbit.core.query.jsr283.qom.DynamicOperand;
+
+/**
+ * <code>LowerCaseImpl</code>...
+ */
+public class LowerCaseImpl extends DynamicOperandImpl implements LowerCase {
+
+    /**
+     * The operand whose value is converted to a lower-case string.
+     */
+    private final DynamicOperandImpl operand;
+
+    LowerCaseImpl(NamePathResolver resolver, DynamicOperandImpl operand) {
+        super(resolver);
+        this.operand = operand;
+    }
+
+    /**
+     * Gets the operand whose value is converted to a lower-case string.
+     *
+     * @return the operand; non-null
+     */
+    public DynamicOperand getOperand() {
+        return operand;
+    }
+
+    //------------------------< AbstractQOMNode >-------------------------------
+
+    /**
+     * Accepts a <code>visitor</code> and calls the appropriate visit method
+     * depending on the type of this QOM node.
+     *
+     * @param visitor the visitor.
+     */
+    public void accept(QOMTreeVisitor visitor, Object data) {
+        visitor.visit(this, data);
+    }
+}

Propchange: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/LowerCaseImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/NodeLocalNameImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/NodeLocalNameImpl.java?rev=572945&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/NodeLocalNameImpl.java (added)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/NodeLocalNameImpl.java Wed Sep  5 05:52:12 2007
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core.query.qom;
+
+import org.apache.jackrabbit.name.NamePathResolver;
+import org.apache.jackrabbit.name.QName;
+
+import org.apache.jackrabbit.core.query.jsr283.qom.NodeLocalName;
+
+/**
+ * <code>NodeLocalNameImpl</code>...
+ */
+public class NodeLocalNameImpl
+        extends DynamicOperandImpl
+        implements NodeLocalName {
+
+    /**
+     * The name of the selector against which to evaluate this operand.
+     */
+    private final QName selectorName;
+
+    NodeLocalNameImpl(NamePathResolver resolver, QName selectorName) {
+        super(resolver);
+        this.selectorName = selectorName;
+    }
+
+    /**
+     * Gets the name of the selector against which to evaluate this operand.
+     *
+     * @return the selector name; non-null
+     */
+    public String getSelectorName() {
+        return getJCRName(selectorName);
+    }
+
+    //------------------------< AbstractQOMNode >-------------------------------
+
+    /**
+     * Accepts a <code>visitor</code> and calls the appropriate visit method
+     * depending on the type of this QOM node.
+     *
+     * @param visitor the visitor.
+     */
+    public void accept(QOMTreeVisitor visitor, Object data) {
+        visitor.visit(this, data);
+    }
+}

Propchange: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/NodeLocalNameImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/NodeNameImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/NodeNameImpl.java?rev=572945&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/NodeNameImpl.java (added)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/NodeNameImpl.java Wed Sep  5 05:52:12 2007
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core.query.qom;
+
+import org.apache.jackrabbit.name.NamePathResolver;
+import org.apache.jackrabbit.name.QName;
+
+import org.apache.jackrabbit.core.query.jsr283.qom.NodeName;
+
+/**
+ * <code>NodeNameImpl</code>...
+ */
+public class NodeNameImpl extends DynamicOperandImpl implements NodeName {
+
+    /**
+     * The name of the selector against which to evaluate this operand.
+     */
+    private final QName selectorName;
+
+    NodeNameImpl(NamePathResolver resolver, QName selectorName) {
+        super(resolver);
+        this.selectorName = selectorName;
+    }
+
+    /**
+     * Gets the name of the selector against which to evaluate this operand.
+     *
+     * @return the selector name; non-null
+     */
+    public String getSelectorName() {
+        return getJCRName(selectorName);
+    }
+
+    //------------------------< AbstractQOMNode >-------------------------------
+
+    /**
+     * Accepts a <code>visitor</code> and calls the appropriate visit method
+     * depending on the type of this QOM node.
+     *
+     * @param visitor the visitor.
+     */
+    public void accept(QOMTreeVisitor visitor, Object data) {
+        visitor.visit(this, data);
+    }
+}

Propchange: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/NodeNameImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/NotImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/NotImpl.java?rev=572945&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/NotImpl.java (added)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/NotImpl.java Wed Sep  5 05:52:12 2007
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core.query.qom;
+
+import org.apache.jackrabbit.name.NamePathResolver;
+
+import org.apache.jackrabbit.core.query.jsr283.qom.Not;
+import org.apache.jackrabbit.core.query.jsr283.qom.Constraint;
+
+/**
+ * <code>NotImpl</code>...
+ */
+public class NotImpl extends ConstraintImpl implements Not {
+
+    /**
+     * The constraint negated by this <code>Not</code> constraint.
+     */
+    private final ConstraintImpl constraint;
+
+    NotImpl(NamePathResolver resolver, ConstraintImpl constraint) {
+        super(resolver);
+        this.constraint = constraint;
+    }
+
+    /**
+     * Gets the constraint negated by this <code>Not</code> constraint.
+     *
+     * @return the constraint; non-null
+     */
+    public Constraint getConstraint() {
+        return constraint;
+    }
+
+    //------------------------< AbstractQOMNode >-------------------------------
+
+    /**
+     * Accepts a <code>visitor</code> and calls the appropriate visit method
+     * depending on the type of this QOM node.
+     *
+     * @param visitor the visitor.
+     */
+    public void accept(QOMTreeVisitor visitor, Object data) {
+        visitor.visit(this, data);
+    }
+}

Propchange: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/NotImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/OrImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/OrImpl.java?rev=572945&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/OrImpl.java (added)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/OrImpl.java Wed Sep  5 05:52:12 2007
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core.query.qom;
+
+import org.apache.jackrabbit.name.NamePathResolver;
+
+import org.apache.jackrabbit.core.query.jsr283.qom.Or;
+import org.apache.jackrabbit.core.query.jsr283.qom.Constraint;
+
+/**
+ * <code>OrImpl</code>...
+ */
+public class OrImpl extends ConstraintImpl implements Or {
+
+    /**
+     * The first constraint.
+     */
+    private final ConstraintImpl constraint1;
+
+    /**
+     * The second constraint.
+     */
+    private final ConstraintImpl constraint2;
+
+    OrImpl(NamePathResolver resolver, ConstraintImpl c1, ConstraintImpl c2) {
+        super(resolver);
+        this.constraint1 = c1;
+        this.constraint2 = c2;
+    }
+
+    /**
+     * Gets the first constraint.
+     *
+     * @return the constraint; non-null
+     */
+    public Constraint getConstraint1() {
+        return constraint1;
+    }
+
+    /**
+     * Gets the second constraint.
+     *
+     * @return the constraint; non-null
+     */
+    public Constraint getConstraint2() {
+        return constraint2;
+    }
+
+    //------------------------< AbstractQOMNode >-------------------------------
+
+    /**
+     * Accepts a <code>visitor</code> and calls the appropriate visit method
+     * depending on the type of this QOM node.
+     *
+     * @param visitor the visitor.
+     */
+    public void accept(QOMTreeVisitor visitor, Object data) {
+        visitor.visit(this, data);
+    }
+}

Propchange: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/OrImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/OrderingImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/OrderingImpl.java?rev=572945&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/OrderingImpl.java (added)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/OrderingImpl.java Wed Sep  5 05:52:12 2007
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core.query.qom;
+
+import org.apache.jackrabbit.name.NamePathResolver;
+
+import org.apache.jackrabbit.core.query.jsr283.qom.Ordering;
+import org.apache.jackrabbit.core.query.jsr283.qom.DynamicOperand;
+
+/**
+ * <code>OrderingImpl</code>...
+ */
+public class OrderingImpl extends AbstractQOMNode implements Ordering {
+
+    /**
+     * Operand by which to order.
+     */
+    private final DynamicOperandImpl operand;
+
+    /**
+     * The order.
+     */
+    private final int order;
+
+    OrderingImpl(NamePathResolver resolver,
+                 DynamicOperandImpl operand,
+                 int order) {
+        super(resolver);
+        this.operand = operand;
+        this.order = order;
+    }
+
+    /**
+     * The operand by which to order.
+     *
+     * @return the operand; non-null
+     */
+    public DynamicOperand getOperand() {
+        return operand;
+    }
+
+    /**
+     * Gets the order.
+     *
+     * @return either <ul> <li>{@link org.apache.jackrabbit.core.query.jsr283.qom.QueryObjectModelConstants#ORDER_ASCENDING}
+     *         or</li> <li>{@link org.apache.jackrabbit.core.query.jsr283.qom.QueryObjectModelConstants#ORDER_DESCENDING}</li>
+     *         </ul>
+     */
+    public int getOrder() {
+        return order;
+    }
+
+
+    //------------------------< AbstractQOMNode >-------------------------------
+
+    /**
+     * Accepts a <code>visitor</code> and calls the appropriate visit method
+     * depending on the type of this QOM node.
+     *
+     * @param visitor the visitor.
+     */
+    public void accept(QOMTreeVisitor visitor, Object data) {
+        visitor.visit(this, data);
+    }
+}

Propchange: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/OrderingImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/PropertyExistenceImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/PropertyExistenceImpl.java?rev=572945&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/PropertyExistenceImpl.java (added)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/PropertyExistenceImpl.java Wed Sep  5 05:52:12 2007
@@ -0,0 +1,78 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core.query.qom;
+
+import org.apache.jackrabbit.name.QName;
+import org.apache.jackrabbit.name.NamePathResolver;
+
+import org.apache.jackrabbit.core.query.jsr283.qom.PropertyExistence;
+
+/**
+ * <code>PropertyExistenceImpl</code>...
+ */
+public class PropertyExistenceImpl
+        extends ConstraintImpl
+        implements PropertyExistence {
+
+    /**
+     * The name of the selector against which to apply this constraint.
+     */
+    private final QName selectorName;
+
+    /**
+     * The name of the property.
+     */
+    private final QName propertyName;
+
+    PropertyExistenceImpl(NamePathResolver resolver,
+                          QName selectorName,
+                          QName propertyName) {
+        super(resolver);
+        this.selectorName = selectorName;
+        this.propertyName = propertyName;
+    }
+
+    /**
+     * Gets the name of the selector against which to apply this constraint.
+     *
+     * @return the selector name; non-null
+     */
+    public String getSelectorName() {
+        return getJCRName(selectorName);
+    }
+
+    /**
+     * Gets the name of the property.
+     *
+     * @return the property name; non-null
+     */
+    public String getPropertyName() {
+        return getJCRName(propertyName);
+    }
+
+    //------------------------< AbstractQOMNode >-------------------------------
+
+    /**
+     * Accepts a <code>visitor</code> and calls the appropriate visit method
+     * depending on the type of this QOM node.
+     *
+     * @param visitor the visitor.
+     */
+    public void accept(QOMTreeVisitor visitor, Object data) {
+        visitor.visit(this, data);
+    }
+}

Propchange: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/PropertyExistenceImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/PropertyValueImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/PropertyValueImpl.java?rev=572945&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/PropertyValueImpl.java (added)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/PropertyValueImpl.java Wed Sep  5 05:52:12 2007
@@ -0,0 +1,78 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core.query.qom;
+
+import org.apache.jackrabbit.name.NamePathResolver;
+import org.apache.jackrabbit.name.QName;
+
+import org.apache.jackrabbit.core.query.jsr283.qom.PropertyValue;
+
+/**
+ * <code>PropertyValueImpl</code>...
+ */
+public class PropertyValueImpl
+        extends DynamicOperandImpl
+        implements PropertyValue {
+
+    /**
+     * The name of the selector against which to apply this constraint.
+     */
+    private final QName selectorName;
+
+    /**
+     * The name of the property.
+     */
+    private final QName propertyName;
+
+    PropertyValueImpl(NamePathResolver resolver,
+                      QName selectorName,
+                      QName propertyName) {
+        super(resolver);
+        this.selectorName = selectorName;
+        this.propertyName = propertyName;
+    }
+
+    /**
+     * Gets the name of the selector against which to evaluate this operand.
+     *
+     * @return the selector name; non-null
+     */
+    public String getSelectorName() {
+        return getJCRName(selectorName);
+    }
+
+    /**
+     * Gets the name of the property.
+     *
+     * @return the property name; non-null
+     */
+    public String getPropertyName() {
+        return getJCRName(propertyName);
+    }
+
+    //------------------------< AbstractQOMNode >-------------------------------
+
+    /**
+     * Accepts a <code>visitor</code> and calls the appropriate visit method
+     * depending on the type of this QOM node.
+     *
+     * @param visitor the visitor.
+     */
+    public void accept(QOMTreeVisitor visitor, Object data) {
+        visitor.visit(this, data);
+    }
+}

Propchange: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/PropertyValueImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/QOMTreeVisitor.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/QOMTreeVisitor.java?rev=572945&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/QOMTreeVisitor.java (added)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/QOMTreeVisitor.java Wed Sep  5 05:52:12 2007
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core.query.qom;
+
+/**
+ * <code>QOMTreeVisitor</code>...
+ */
+public interface QOMTreeVisitor {
+
+    public void visit(AndImpl node, Object data);
+
+    public void visit(BindVariableValueImpl node, Object data);
+
+    public void visit(ChildNodeImpl node, Object data);
+
+    public void visit(ChildNodeJoinConditionImpl node, Object data);
+
+    public void visit(ColumnImpl node, Object data);
+
+    public void visit(ComparisonImpl node, Object data);
+
+    public void visit(DescendantNodeImpl node, Object data);
+
+    public void visit(DescendantNodeJoinConditionImpl node, Object data);
+
+    public void visit(EquiJoinConditionImpl node, Object data);
+
+    public void visit(FullTextSearchImpl node, Object data);
+
+    public void visit(FullTextSearchScoreImpl node, Object data);
+
+    public void visit(JoinImpl node, Object data);
+
+    public void visit(LengthImpl node, Object data);
+
+    public void visit(LowerCaseImpl node, Object data);
+
+    public void visit(NodeLocalNameImpl node, Object data);
+
+    public void visit(NodeNameImpl node, Object data);
+
+    public void visit(NotImpl node, Object data);
+
+    public void visit(OrderingImpl node, Object data);
+
+    public void visit(OrImpl node, Object data);
+
+    public void visit(PropertyExistenceImpl node, Object data);
+
+    public void visit(PropertyValueImpl node, Object data);
+
+    public void visit(QueryObjectModelTree node, Object data);
+
+    public void visit(SameNodeImpl node, Object data);
+
+    public void visit(SameNodeJoinConditionImpl node, Object data);
+
+    public void visit(SelectorImpl node, Object data);
+
+    public void visit(UpperCaseImpl node, Object data);
+}

Propchange: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/qom/QOMTreeVisitor.java
------------------------------------------------------------------------------
    svn:eol-style = native



Mime
View raw message