All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.jackrabbit.spi.ItemId Maven / Gradle / Ivy

/*
 * 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.spi;

/**
 * An ItemId identifies an item using a combination of unique ID
 * and path. There are three basic forms of an ItemId. The following
 * table shows each of the allowed combinations where an X in
 * the column indicates that a value is set and a - indicates
 * that the value is null:
 * 
 * 
 * 
 *   
 * 
 *   
 * 
 *   
 * 
UniqueIDPathUsage
X-The item can be identified with a unique ID. In most cases such an item * is also mix:referenceable but there is no restriction in that respect. An * SPI implementation may also use a unique ID to identify non-referenceable nodes. * Whether a node is referenceable is purely governed by its node type or * the assigned mixin types. Note, that the format of the ID it is left to the * implementation.
-XThe item can not be identified with a unique ID and none of its ancestors * can be identified with a unique ID. The item is identified by an absolute path. *
XXThe item can not be identified with a unique ID but one of its ancestors * can. {@link #getUniqueID} returns the unique ID of the nearest ancestor, which * can be identified with a unique ID. The relative path provides a navigation * path from the above mentioned ancestor to the item identified by the * ItemId. *
*

* Two ItemIds should be considered equal if both the unique part * and the path part are equal AND if they denote the same * {@link #denotesNode() type} of ItemId. */ public interface ItemId { /** * @return true if this ItemId identifies a node; * otherwise false. */ public boolean denotesNode(); /** * @return the uniqueID part of this item id or null if the * identified item nor any of its ancestors can be identified with a * uniqueID. */ public String getUniqueID(); /** * @return the path part of this item id. Returns null * if this item can be identified solely with a uniqueID. */ public Path getPath(); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy