pathquerynode.java

来自「jsr170接口的java实现。是个apache的开源项目。」· Java 代码 · 共 114 行

JAVA
114
字号
/* * 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;/** * Implements a query node that defines a path restriction. */public class PathQueryNode extends NAryQueryNode {    /**     * Flag indicating whether this path is absolute.     */    private boolean absolute = false;    /**     * Empty step node array.     */    private static final LocationStepQueryNode[] EMPTY = new LocationStepQueryNode[0];    /**     * Creates a relative <code>PathQueryNode</code> with no location steps.     *     * @param parent the parent query node.     */    public PathQueryNode(QueryNode parent) {        super(parent);    }    /**     * {@inheritDoc}     */    public Object accept(QueryNodeVisitor visitor, Object data) {        return visitor.visit(this, data);    }    /**     * Returns the type of this node.     *     * @return the type of this node.     */    public int getType() {        return QueryNode.TYPE_PATH;    }    /**     * Adds a path step to this <code>PathQueryNode</code>.     *     * @param step the step to add.     */    public void addPathStep(LocationStepQueryNode step) {        addOperand(step);    }    /**     * Returns an array of all currently set location step nodes.     *     * @return an array of all currently set location step nodes.     */    public LocationStepQueryNode[] getPathSteps() {        if (operands == null) {            return EMPTY;        } else {            return (LocationStepQueryNode[]) operands.toArray(new LocationStepQueryNode[operands.size()]);        }    }    /**     * If <code>absolute</code> is <code>true</code> sets this     * <code>PathQueryNode</code> to an absolute path. If <code>absolute</code>     * is <code>false</code> this path is considered relative.     *     * @param absolute sets the absolute property to this new value.     */    public void setAbsolute(boolean absolute) {        this.absolute = absolute;    }    /**     * Returns <code>true</code> if this is an absolute path; <code>false</code>     * otherwise.     *     * @return <code>true</code> if this is an absolute path; <code>false</code>     *         otherwise.     */    public boolean isAbsolute() {        return absolute;    }    /**     * @inheritDoc     */    public boolean equals(Object obj) {        if (obj instanceof PathQueryNode) {            PathQueryNode other = (PathQueryNode) obj;            return super.equals(obj) && absolute == other.absolute;        }        return false;    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?