Examples of QPathEntryFilter


Examples of org.exoplatform.services.jcr.impl.core.itemfilters.QPathEntryFilter

            }

            Iterator<QPathEntryFilter> patternIterator = uncachedPatterns.iterator();
            while (patternIterator.hasNext())
            {
               QPathEntryFilter pattern = patternIterator.next();
               if (pattern.isExactName())
               {
                  DataRequest exactNameRequest = new DataRequest(parentData.getIdentifier(), pattern.getQPathEntry());
                  exactNameRequest.start();
                  requests.add(exactNameRequest);

                  ItemData data = getCachedItemData(parentData, pattern.getQPathEntry(), ItemType.NODE);
                  if (data != null)
                  {
                     if (!(data instanceof NullItemData))
                     {
                        childNodesMap.put(data.getIdentifier(), (NodeData)data);
                     }
                     patternIterator.remove();
                  }
               }
               else
               {
                  // get node list by pattern
                  List<NodeData> cachedItemList = cache.getChildNodes(parentData, pattern);
                  if (cachedItemList != null)
                  {
                     //merge results
                     for (int j = 0, length = cachedItemList.size(); j < length; j++)
                     {
                        childNodesMap.put(cachedItemList.get(j).getIdentifier(), cachedItemList.get(j));
                     }
                     patternIterator.remove();
                  }
               }
            }
            patternIterator = null;

            // execute all patterns and put result in cache
            if (!uncachedPatterns.isEmpty())
            {
               executeAction(new PrivilegedExceptionAction<Void>()
               {
                  public Void run() throws RepositoryException
                  {
                     List<NodeData> persistedItemList =
                        CacheableWorkspaceDataManager.super.getChildNodesData(parentData,
                           new ArrayList<QPathEntryFilter>(uncachedPatterns));

                     if (persistedItemList.size() > 0)
                     {
                        NodeData parent = (NodeData)getItemData(parentData.getIdentifier());
                        if (parent != null)
                        {
                           // filter nodes list for each exact name
                           Iterator<QPathEntryFilter> patternIterator = uncachedPatterns.iterator();
                           while (patternIterator.hasNext())
                           {
                              QPathEntryFilter pattern = patternIterator.next();
                              @SuppressWarnings("unchecked")
                              List<NodeData> persistedNodeData = (List<NodeData>)pattern.accept(persistedItemList);
                              if (pattern.isExactName())
                              {
                                 if (persistedNodeData.isEmpty())
                                 {
                                    cache.put(new NullNodeData(parentData, pattern.getQPathEntry()));
                                 }
                                 else
                                 {
                                    cache.put(persistedNodeData.get(0));
                                 }
View Full Code Here

Examples of org.exoplatform.services.jcr.impl.core.itemfilters.QPathEntryFilter

            }

            Iterator<QPathEntryFilter> patternIterator = uncachedPatterns.iterator();
            while (patternIterator.hasNext())
            {
               QPathEntryFilter pattern = patternIterator.next();
               if (pattern.isExactName())
               {
                  DataRequest exactNameRequest = new DataRequest(nodeData.getIdentifier(), pattern.getQPathEntry());
                  exactNameRequest.start();
                  requests.add(exactNameRequest);

                  ItemData data = getCachedItemData(nodeData, pattern.getQPathEntry(), ItemType.PROPERTY);
                  if (data != null)
                  {
                     if (!(data instanceof NullPropertyData))
                     {
                        childPropsMap.put(data.getIdentifier(), (PropertyData)data);
                     }
                     patternIterator.remove();
                  }
               }
               else
               {
                  // get properties list by pattern
                  List<PropertyData> cachedItemList = cache.getChildProperties(nodeData, pattern);
                  if (cachedItemList != null)
                  {
                     //merge results
                     for (int j = 0, length = cachedItemList.size(); j < length; j++)
                     {
                        childPropsMap.put(cachedItemList.get(j).getIdentifier(), cachedItemList.get(j));
                     }
                     patternIterator.remove();
                  }
               }
            }
            patternIterator = null;

            // execute all patterns and put result in cache
            if (!uncachedPatterns.isEmpty())
            {
               executeAction(new PrivilegedExceptionAction<Void>()
               {
                  public Void run() throws RepositoryException
                  {
                     List<PropertyData> persistedItemList =
                        CacheableWorkspaceDataManager.super.getChildPropertiesData(nodeData,
                           new ArrayList<QPathEntryFilter>(uncachedPatterns));

                     if (persistedItemList.size() > 0)
                     {
                        NodeData parent = (NodeData)getItemData(nodeData.getIdentifier());
                        if (parent != null)
                        {
                           // filter properties list for each exact name
                           Iterator<QPathEntryFilter> patternIterator = uncachedPatterns.iterator();
                           while (patternIterator.hasNext())
                           {
                              QPathEntryFilter pattern = patternIterator.next();
                              @SuppressWarnings("unchecked")
                              List<PropertyData> persistedPropData =
                                 (List<PropertyData>)pattern.accept(persistedItemList);
                              if (pattern.isExactName())
                              {
                                 if (persistedPropData.isEmpty())
                                 {
                                    cache.put(new NullPropertyData(parent, pattern.getQPathEntry()));
                                 }
                                 else
                                 {
                                    cache.put(persistedPropData.get(0));
                                 }
View Full Code Here

Examples of org.exoplatform.services.jcr.impl.core.itemfilters.QPathEntryFilter

            {
               LOG.error("Unexpected object found by FQN:" + patternFqn + " and key:" + patternKey
                  + ". Expected QPathEntryFilter, but found:" + patternObject.getClass().getName());
               continue;
            }
            QPathEntryFilter nameFilter = (QPathEntryFilter)patternObject;
            if (nameFilter.accept(value))
            {
               cache.getInvocationContext().getOptionOverrides().setForceWriteLock(true);
               Object setObject = cache.get(patternFqn, listKey);
               if (!(setObject instanceof Set))
               {
View Full Code Here

Examples of org.exoplatform.services.jcr.impl.core.itemfilters.QPathEntryFilter

            {
               LOG.error("Unexpected object found by FQN:" + patternFqn + " and key:" + patternKey
                  + ". Expected QPathEntryFilter, but found:" + patternObject.getClass().getName());
               continue;
            }
            QPathEntryFilter nameFilter = (QPathEntryFilter)patternObject;
            if (nameFilter.accept(value))
            {
               cache.getInvocationContext().getOptionOverrides().setForceWriteLock(true);
               Object setObject = cache.get(patternFqn, listKey);
               if (!(setObject instanceof Set))
               {
View Full Code Here

Examples of org.exoplatform.services.jcr.impl.core.itemfilters.QPathEntryFilter

      }
     
      List<NodeData> children = new ArrayList<NodeData>();
      for (Iterator<QPathEntryFilter> it = itemDataFilters.iterator() ; it.hasNext(); )
      {
         QPathEntryFilter filter = it.next();
         if (filter.isExactName())
         {
            NodeData data = (NodeData)getItemData(parent, filter.getQPathEntry(), ItemType.NODE);
            if (data != null)
            {
               children.add(data);
            }
            it.remove();
View Full Code Here

Examples of org.exoplatform.services.jcr.impl.core.itemfilters.QPathEntryFilter

   {
      checkIfOpened();
      List<PropertyData> children = new ArrayList<PropertyData>();
      for (Iterator<QPathEntryFilter> it = itemDataFilters.iterator() ; it.hasNext(); )
      {
         QPathEntryFilter filter = it.next();
         if (filter.isExactName())
         {
            PropertyData data = (PropertyData)getItemData(parent, filter.getQPathEntry(), ItemType.PROPERTY);
            if (data != null)
            {
               children.add(data);
            }
            it.remove();
View Full Code Here

Examples of org.exoplatform.services.jcr.impl.core.itemfilters.QPathEntryFilter

      }

      List<NodeData> children = new ArrayList<NodeData>();
      for (Iterator<QPathEntryFilter> it = itemDataFilters.iterator(); it.hasNext(); )
      {
         QPathEntryFilter filter = it.next();
         if (filter.isExactName())
         {
            NodeData data = (NodeData)getItemData(parent, filter.getQPathEntry(), ItemType.NODE);
            if (data != null)
            {
               children.add(data);
            }
            it.remove();
View Full Code Here

Examples of org.exoplatform.services.jcr.impl.core.itemfilters.QPathEntryFilter

   {
      checkIfOpened();
      List<PropertyData> children = new ArrayList<PropertyData>();
      for (Iterator<QPathEntryFilter> it = itemDataFilters.iterator(); it.hasNext(); )
      {
         QPathEntryFilter filter = it.next();
         if (filter.isExactName())
         {
            PropertyData data = (PropertyData)getItemData(parent, filter.getQPathEntry(), ItemType.PROPERTY);
            if (data != null)
            {
               children.add(data);
            }
            it.remove();
View Full Code Here

Examples of org.exoplatform.services.jcr.impl.core.itemfilters.QPathEntryFilter

               new HashMap<QPathEntryFilter, Set<String>>((Map<QPathEntryFilter, Set<String>>)existingObject);

            Iterator<QPathEntryFilter> iterator = newMap.keySet().iterator();
            while (iterator.hasNext())
            {
               QPathEntryFilter pattern = iterator.next();
               if (pattern.accept(itemData))
               {
                  Set<String> newSet = newMap.get(pattern);
                  newSet.add(itemData.getIdentifier());
                  newMap.put(pattern, newSet);
               }
View Full Code Here

Examples of org.exoplatform.services.jcr.impl.core.itemfilters.QPathEntryFilter

               new HashMap<QPathEntryFilter, Set<String>>((HashMap<QPathEntryFilter, Set<String>>)existingObject);

            Iterator<QPathEntryFilter> patternInterator = newMap.keySet().iterator();
            while (patternInterator.hasNext())
            {
               QPathEntryFilter pattern = patternInterator.next();
               if (pattern.accept(itemData))
               {
                  Set<String> newSet = new HashSet<String>(newMap.get(pattern));
                  newSet.remove(itemData.getIdentifier());
                  newMap.put(pattern, newSet);
               }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.