Package org.exoplatform.services.jcr.datamodel

Examples of org.exoplatform.services.jcr.datamodel.PropertyData


                        .getParentIdentifier(), prevData.getPersistedVersion() + 1, prevData.getOrderNumber(), prevData
                        .getPrimaryTypeName(), prevData.getMixinTypeNames(), prevData.getACL());
               }
               else
               {
                  PropertyData prevData = (PropertyData)prevState.getData();

                  if (prevData.getValues() != null) // null if it's DELETE state
                  {
                     List<ValueData> values = new ArrayList<ValueData>();
                     for (int i = 0; i < prevData.getValues().size(); i++)
                     {
                        ValueData vd = prevData.getValues().get(i);

                        if (vd instanceof TransientValueData)
                        {
                           TransientValueData tvd = (TransientValueData)vd;
                           ValueData pvd;

                           if (vd.isByteArray())
                           {
                              pvd = new ByteArrayPersistedValueData(i, vd.getAsByteArray());
                              values.add(pvd);
                           }
                           else
                           {
                              // TODO ask dest file from VS provider, can be null after
                              // TODO for JBC case, the storage connection will evict the replicated Value to read it from the DB
                              File destFile = null;

                              if (tvd.getSpoolFile() != null)
                              {
                                 // spooled to temp file
                                 pvd = new StreamPersistedValueData(i, tvd.getSpoolFile(), destFile);
                              }
                              else
                              {
                                 // with original stream
                                 pvd = new StreamPersistedValueData(i, tvd.getOriginalStream(), destFile);
                              }

                              values.add(pvd);
                           }

                           tvd.delegate(pvd);
                        }
                        else
                        {
                           values.add(vd);
                        }
                     }

                     newData =
                        new PersistedPropertyData(prevData.getIdentifier(), prevData.getQPath(), prevData
                           .getParentIdentifier(), prevData.getPersistedVersion() + 1, prevData.getType(), prevData
                           .isMultiValued(), values);
                  }
                  else
                  {
                     newData =
                        new PersistedPropertyData(prevData.getIdentifier(), prevData.getQPath(), prevData
                           .getParentIdentifier(), prevData.getPersistedVersion() + 1, prevData.getType(), prevData
                           .isMultiValued(), null);
                  }
               }
            }
View Full Code Here


    */
   public Calendar getCreated() throws RepositoryException
   {
      checkValid();

      PropertyData pdata =
         (PropertyData)dataManager.getItemData(nodeData(), new QPathEntry(Constants.JCR_CREATED, 0), ItemType.PROPERTY);

      if (pdata == null)
      {
         throw new VersionException("jcr:created property is not found for version " + getPath());
      }

      Value created = session.getValueFactory().loadValue(pdata.getValues().get(0), pdata.getType());
      return created.getDate();
   }
View Full Code Here

    */
   public Version[] getSuccessors() throws RepositoryException
   {
      checkValid();

      PropertyData successorsData =
         (PropertyData)dataManager.getItemData(nodeData(), new QPathEntry(Constants.JCR_SUCCESSORS, 0),
            ItemType.PROPERTY);

      if (successorsData == null)
      {
         return new Version[0];
      }

      List<ValueData> successorsValues = successorsData.getValues();
      Version[] successors = new Version[successorsValues.size()];

      try
      {
         for (int i = 0; i < successorsValues.size(); i++)
View Full Code Here

    */
   public Version[] getPredecessors() throws RepositoryException
   {
      checkValid();

      PropertyData predecessorsData =
         (PropertyData)dataManager.getItemData(nodeData(), new QPathEntry(Constants.JCR_PREDECESSORS, 0),
            ItemType.PROPERTY);

      if (predecessorsData == null)
      {
         return new Version[0];
      }

      List<ValueData> predecessorsValues = predecessorsData.getValues();
      Version[] predecessors = new Version[predecessorsValues.size()];

      try
      {
         for (int i = 0; i < predecessorsValues.size(); i++)
View Full Code Here

   {
      checkValid();

      ValueData successorRef = new TransientValueData(new Identifier(successorIdentifier));

      PropertyData successorsProp =
         (PropertyData)dataManager.getItemData(nodeData(), new QPathEntry(Constants.JCR_SUCCESSORS, 0),
            ItemType.PROPERTY);

      if (successorsProp == null)
      {
         // create a property now
         List<ValueData> successors = new ArrayList<ValueData>();
         successors.add(successorRef);
         successorsProp =
            TransientPropertyData.createPropertyData(nodeData(), Constants.JCR_SUCCESSORS, PropertyType.REFERENCE,
               true, successors);
         changesLog.add(ItemState.createAddedState(successorsProp));
      }
      else
      {
         // add successor
         List<ValueData> newSuccessorsValue = new ArrayList<ValueData>();
         try
         {
            for (ValueData svd : successorsProp.getValues())
            {
               newSuccessorsValue.add(new TransientValueData(svd.getAsByteArray()));
            }
         }
         catch (IOException e)
         {
            throw new RepositoryException("jcr:successors read error " + e, e);
         }

         newSuccessorsValue.add(successorRef);

         TransientPropertyData newSuccessorsProp =
            new TransientPropertyData(successorsProp.getQPath(), successorsProp.getIdentifier(), successorsProp
               .getPersistedVersion(), successorsProp.getType(), successorsProp.getParentIdentifier(), successorsProp
               .isMultiValued(), newSuccessorsValue);

         changesLog.add(ItemState.createUpdatedState(newSuccessorsProp));
      }
   }
View Full Code Here

   {
      checkValid();

      ValueData predeccessorRef = new TransientValueData(new Identifier(predeccessorIdentifier));

      PropertyData predeccessorsProp =
         (PropertyData)dataManager.getItemData(nodeData(), new QPathEntry(Constants.JCR_PREDECESSORS, 0),
            ItemType.PROPERTY);

      if (predeccessorsProp == null)
      {
         List<ValueData> predeccessors = new ArrayList<ValueData>();
         predeccessors.add(predeccessorRef);
         predeccessorsProp =
            TransientPropertyData.createPropertyData(nodeData(), Constants.JCR_PREDECESSORS, PropertyType.REFERENCE,
               true, predeccessors);
         changesLog.add(ItemState.createAddedState(predeccessorsProp));
      }
      else
      {
         // add predeccessor
         List<ValueData> newPredeccessorValue = new ArrayList<ValueData>();
         try
         {
            for (ValueData svd : predeccessorsProp.getValues())
            {
               newPredeccessorValue.add(new TransientValueData(svd.getAsByteArray()));
            }
         }
         catch (IOException e)
         {
            throw new RepositoryException("jcr:predecessors read error " + e, e);
         }

         newPredeccessorValue.add(predeccessorRef);

         TransientPropertyData newPredeccessorsProp =
            new TransientPropertyData(predeccessorsProp.getQPath(), predeccessorsProp.getIdentifier(),
               predeccessorsProp.getPersistedVersion(), predeccessorsProp.getType(), predeccessorsProp
                  .getParentIdentifier(), predeccessorsProp.isMultiValued(), newPredeccessorValue);

         changesLog.add(ItemState.createUpdatedState(newPredeccessorsProp));
      }
   }
View Full Code Here

      }
   }

   void removeSuccessor(String successorIdentifier, PlainChangesLog changesLog) throws RepositoryException
   {
      PropertyData successorsProp =
         (PropertyData)dataManager.getItemData(nodeData(), new QPathEntry(Constants.JCR_SUCCESSORS, 0),
            ItemType.PROPERTY);
      if (successorsProp != null)
      {
         List<ValueData> newSuccessors = new ArrayList<ValueData>();

         try
         {
            for (ValueData sdata : successorsProp.getValues())
            {
               byte[] sb = sdata.getAsByteArray();
               if (!successorIdentifier.equals(new String(sb)))
               {
                  newSuccessors.add(new TransientValueData(sb));
               }
            }
         }
         catch (IOException e)
         {
            throw new RepositoryException("A jcr:successors property read error " + e, e);
         }

         TransientPropertyData newSuccessorsProp =
            new TransientPropertyData(QPath.makeChildPath(nodeData().getQPath(), Constants.JCR_SUCCESSORS,
               successorsProp.getQPath().getIndex()), successorsProp.getIdentifier(), successorsProp
               .getPersistedVersion(), PropertyType.REFERENCE, nodeData().getIdentifier(), true, newSuccessors);

         changesLog.add(ItemState.createUpdatedState(newSuccessorsProp));
      }
      else
View Full Code Here

   void removeAddSuccessor(String removedSuccessorIdentifier, String addedSuccessorIdentifier,
      PlainChangesLog changesLog) throws RepositoryException
   {

      PropertyData successorsProp =
         (PropertyData)dataManager.getItemData(nodeData(), new QPathEntry(Constants.JCR_SUCCESSORS, 0),
            ItemType.PROPERTY);

      if (successorsProp != null)
      {
         List<ValueData> newSuccessors = new ArrayList<ValueData>();

         try
         {
            for (ValueData sdata : successorsProp.getValues())
            {
               byte[] sb = sdata.getAsByteArray();
               if (!removedSuccessorIdentifier.equals(new String(sb)))
               {
                  newSuccessors.add(new TransientValueData(sb));
               }
            }
         }
         catch (IOException e)
         {
            throw new RepositoryException("A jcr:successors property read error " + e, e);
         }

         newSuccessors.add(new TransientValueData(new Identifier(addedSuccessorIdentifier)));

         TransientPropertyData newSuccessorsProp =
            new TransientPropertyData(QPath.makeChildPath(nodeData().getQPath(), Constants.JCR_SUCCESSORS,
               successorsProp.getQPath().getIndex()), successorsProp.getIdentifier(), successorsProp
               .getPersistedVersion(), PropertyType.REFERENCE, nodeData().getIdentifier(), true, newSuccessors);

         changesLog.add(ItemState.createUpdatedState(newSuccessorsProp));
      }
      else
View Full Code Here

      }
   }

   void removePredecessor(String predecessorIdentifier, PlainChangesLog changesLog) throws RepositoryException
   {
      PropertyData predeccessorsProp =
         (PropertyData)dataManager.getItemData(nodeData(), new QPathEntry(Constants.JCR_PREDECESSORS, 0),
            ItemType.PROPERTY);

      if (predeccessorsProp != null)
      {
         List<ValueData> newPredeccessors = new ArrayList<ValueData>();

         try
         {
            for (ValueData sdata : predeccessorsProp.getValues())
            {
               byte[] sb = sdata.getAsByteArray();
               if (!predecessorIdentifier.equals(new String(sb)))
               {
                  newPredeccessors.add(new TransientValueData(sb));
               }
            }
         }
         catch (IOException e)
         {
            throw new RepositoryException("A jcr:predecessors property read error " + e, e);
         }

         TransientPropertyData newPredecessorsProp =
            new TransientPropertyData(QPath.makeChildPath(nodeData().getQPath(), Constants.JCR_PREDECESSORS,
               predeccessorsProp.getQPath().getIndex()), predeccessorsProp.getIdentifier(), predeccessorsProp
               .getPersistedVersion(), PropertyType.REFERENCE, nodeData().getIdentifier(), true, newPredeccessors);

         changesLog.add(ItemState.createUpdatedState(newPredecessorsProp));
      }
      else
View Full Code Here

   void removeAddPredecessor(String removedPredecessorIdentifier, String addedPredecessorIdentifier,
      PlainChangesLog changesLog) throws RepositoryException
   {

      PropertyData predeccessorsProp =
         (PropertyData)dataManager.getItemData(nodeData(), new QPathEntry(Constants.JCR_PREDECESSORS, 0),
            ItemType.PROPERTY);

      if (predeccessorsProp != null)
      {
         List<ValueData> newPredeccessors = new ArrayList<ValueData>();

         try
         {
            for (ValueData sdata : predeccessorsProp.getValues())
            {
               byte[] sb = sdata.getAsByteArray();
               if (!removedPredecessorIdentifier.equals(new String(sb)))
               {
                  newPredeccessors.add(new TransientValueData(sb));
               }
            }
         }
         catch (IOException e)
         {
            throw new RepositoryException("A jcr:predecessors property read error " + e, e);
         }

         newPredeccessors.add(new TransientValueData(new Identifier(addedPredecessorIdentifier)));

         TransientPropertyData newPredecessorsProp =
            new TransientPropertyData(QPath.makeChildPath(nodeData().getQPath(), Constants.JCR_PREDECESSORS,
               predeccessorsProp.getQPath().getIndex()), predeccessorsProp.getIdentifier(), predeccessorsProp
               .getPersistedVersion(), PropertyType.REFERENCE, nodeData().getIdentifier(), true, newPredeccessors);

         changesLog.add(ItemState.createUpdatedState(newPredecessorsProp));
      }
      else
View Full Code Here

TOP

Related Classes of org.exoplatform.services.jcr.datamodel.PropertyData

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.