1 package org.openecomp.core.zusammen.plugin.collaboration;
 
   3 import com.amdocs.zusammen.datatypes.Id;
 
   4 import com.amdocs.zusammen.datatypes.SessionContext;
 
   5 import com.amdocs.zusammen.datatypes.item.ElementContext;
 
   6 import org.openecomp.core.zusammen.plugin.dao.types.ElementEntity;
 
   7 import org.openecomp.core.zusammen.plugin.dao.types.SynchronizationStateEntity;
 
   9 import java.util.Collection;
 
  10 import java.util.Date;
 
  12 import java.util.Optional;
 
  14 public interface ElementPrivateStore extends ElementStore {
 
  16   Map<Id, Id> listIds(SessionContext context, ElementContext elementContext);
 
  18   Collection<ElementEntity> listSubs(SessionContext context, ElementContext elementContext,
 
  21   Optional<SynchronizationStateEntity> getSynchronizationState(SessionContext context,
 
  22                                                                ElementContext elementContext,
 
  25   void create(SessionContext context, ElementContext elementContext, ElementEntity element);
 
  27   boolean update(SessionContext context, ElementContext elementContext, ElementEntity element);
 
  29   void delete(SessionContext context, ElementContext elementContext, ElementEntity element);
 
  31   void markAsPublished(SessionContext context, ElementContext elementContext, Id elementId,
 
  34   void markDeletionAsPublished(SessionContext context, ElementContext elementContext, Id elementId,
 
  37   void commitStagedCreate(SessionContext context, ElementContext elementContext,
 
  38                           ElementEntity element, Date publishTime);
 
  40   void commitStagedUpdate(SessionContext context, ElementContext elementContext,
 
  41                           ElementEntity element, Date publishTime);
 
  43   void commitStagedDelete(SessionContext context, ElementContext elementContext,
 
  44                           ElementEntity element);
 
  46   void commitStagedIgnore(SessionContext context, ElementContext elementContext,
 
  47                           ElementEntity element, Date publishTime);