Package org.apache.jackrabbit.spi

Examples of org.apache.jackrabbit.spi.ItemInfo


        try {
            // Get item info from cache
            Iterator<? extends ItemInfo> infos = null;
            Entry<PropertyInfo> cached = cache.getPropertyInfo(propertyId);
            ItemInfo info;
            if (cached == null) {
                // or from service if not in cache
                infos = service.getItemInfos(sessionInfo, propertyId);
                info = first(infos, null, 0);
                if (info == null || info.denotesNode()) {
                    throw new ItemNotFoundException("PropertyId: " + propertyId);
                }
            } else {
                info = cached.info;
            }
View Full Code Here


     * Returns the first item in the iterator if it exists. Otherwise returns <code>null</code>.
     * If <code>cache</code> is not <code>null</code>, caches all items by the given
     * <code>generation</code>.
     */
    private static ItemInfo first(Iterator<? extends ItemInfo> infos, ItemInfoCache cache, long generation) {
        ItemInfo first = null;
        if (infos.hasNext()) {
            first = infos.next();
            if (cache != null) {
                cache.put(first, generation);
            }
View Full Code Here

    @Override
    public Iterator<? extends ItemInfo> getItemInfos(SessionInfo sessionInfo, ItemId itemId)
            throws ItemNotFoundException, RepositoryException {

        roundTripCount++;
        ItemInfo itemInfo = itemInfoStore.getItemInfo(itemId);
        return iteratorChain(singleton(itemInfo), getBatch());
    }
View Full Code Here

        rs.submit(b);

        NodeId id = rs.getIdFactory().createNodeId(nid, resolver.getQPath("aNode"));
        Iterator<? extends ItemInfo> it = rs.getItemInfos(si, id);
        while (it.hasNext()) {
            ItemInfo info = it.next();
            if (info.denotesNode()) {
                NodeInfo nInfo = (NodeInfo) info;
                assertEquals(NameConstants.NT_UNSTRUCTURED, nInfo.getNodetype());
                Iterator<ChildInfo> childIt = nInfo.getChildInfos();
                assertTrue(childIt == null || !childIt.hasNext());
                assertEquals(id, nInfo.getId());
View Full Code Here

        assertEquals(Arrays.asList(new QValue[0]), Arrays.asList(pi.getValues()));
        assertFalse(pi.getType() == PropertyType.UNDEFINED);

        Iterator<? extends ItemInfo> it = rs.getItemInfos(si, nid);
        while (it.hasNext()) {
            ItemInfo info = it.next();
            if (!info.denotesNode()) {
                PropertyInfo pInfo = (PropertyInfo) info;
                if (propName.equals((pInfo.getId().getName()))) {
                    assertTrue(pi.isMultiValued());
                    assertEquals(Arrays.asList(new QValue[0]), Arrays.asList(pi.getValues()));
                    assertFalse(pi.getType() == PropertyType.UNDEFINED);
View Full Code Here

    }

    private PropertyInfo getPropertyInfo(NodeId parentId, Name propName) throws RepositoryException {
        Iterator<? extends ItemInfo> it = rs.getItemInfos(si, parentId);
        while (it.hasNext()) {
            ItemInfo info = it.next();
            if (!info.denotesNode()) {
                PropertyInfo pInfo = (PropertyInfo) info;
                if (propName.equals((pInfo.getId().getName()))) {
                    return pInfo;
                }
            }
View Full Code Here

        // Assuming locality of the itemInfos, we keep an estimate of a parent entry.
        // This reduces the part of the hierarchy to traverse. For large batches this
        // optimization results in about 25% speed up.
        NodeEntry approxParentEntry = nodeState.getNodeEntry();
        while (infos.hasNext()) {
            ItemInfo info = infos.next();
            if (info.denotesNode()) {
                approxParentEntry = createDeepNodeState((NodeInfo) info, approxParentEntry, infos).getNodeEntry();
            } else {
                createDeepPropertyState((PropertyInfo) info, approxParentEntry, infos);
            }
        }
View Full Code Here

         */
        public ItemInfo next() {
            if (prefetchQueue.isEmpty()) {
                throw new NoSuchElementException();
            } else {
                ItemInfo next = prefetchQueue.remove(0);
                if (next instanceof NodeInfo) {
                    nodeInfos.remove(((NodeInfo) next).getId());
                }
                return next;
            }
View Full Code Here

        /**
         * @return <code>true</code> if the next info could be retrieved.
         */
        private boolean prefetch() {
            if (infos.hasNext()) {
                ItemInfo info = infos.next();
                prefetchQueue.add(info);
                if (info.denotesNode()) {
                    NodeInfo nodeInfo = (NodeInfo) info;
                    nodeInfos.put(nodeInfo.getId(), nodeInfo);
                }
                return true;
            } else {
View Full Code Here

        // deal with all additional ItemInfos that may be present.
        NodeEntry parentEntry = nodeState.getNodeEntry();
        if (parentEntry.getStatus() != Status.INVALIDATED) {
            while (itemInfos.hasNext()) {
                ItemInfo info = (ItemInfo) itemInfos.next();
                if (info.denotesNode()) {
                    createDeepNodeState((NodeInfo) info, parentEntry);
                } else {
                    createDeepPropertyState((PropertyInfo) info, parentEntry);
                }
            }
View Full Code Here

TOP

Related Classes of org.apache.jackrabbit.spi.ItemInfo

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.