Package org.datanucleus

Examples of org.datanucleus.ExecutionContext.findObjectProvider()


    });

    if (!inserted) {
      // Element was already persistent so make sure the FK is in place
      // TODO This is really "ManagedRelationships" so needs to go in RelationshipManager
      ObjectProvider elementOP = ec.findObjectProvider(element);
      if (relationType == RelationType.ONE_TO_MANY_BI) {
        // Managed Relations : 1-N bidir, so update the owner of the element
        elementOP.isLoaded(getFieldNumberInElementForBidirectional(elementOP)); // Ensure is loaded
        Object oldOwner = elementOP.provideField(getFieldNumberInElementForBidirectional(elementOP));
        if (oldOwner != newOwner) {
View Full Code Here


    if (elementsIter != null) {
      while (elementsIter.hasNext()) {
        Object element = elementsIter.next();
        if (ec.getApiAdapter().isPersistable(element) && ec.getApiAdapter().isDeleted(element)) {
          // Element is waiting to be deleted so flush it (it has the FK)
          ObjectProvider elementSM = ec.findObjectProvider(element);
          elementSM.flush();
        } else {
          if (deleteElements) {
            ec.deleteObjectInternal(element);
          } else {
View Full Code Here

    ExecutionContext ec = op.getExecutionContext();
    if (ec.getApiAdapter().isDetached(element)) {// User passed in detached object to collection.remove()! {
      // Find an attached equivalent of this detached object (DON'T attach the object itself)
      elementToRemove = ec.findObject(ec.getApiAdapter().getIdForObject(element), true, false, element.getClass().getName());
    }
    ObjectProvider elementOP = ec.findObjectProvider(elementToRemove);

    // Check for change of owner of the element (removed from this but added to another one maybe?)
    if (MetaDataUtils.isOwnedRelation(ownerMemberMetaData, storeMgr)) {
      // Check for ownership change when owned relation, and prevent changes
      Object oldOwner = null;
View Full Code Here

   * @param pm The Persistence Manager
   * @return The Entity (if accessible)
   */
  public Entity getEntityFromJPA(Object pc, EntityManager em) {
    ExecutionContext ec = ((JPAEntityManager)em).getExecutionContext();
    ObjectProvider op = ec.findObjectProvider(pc);
    if (op != null) {
      DatastoreManager storeMgr = (DatastoreManager) ec.getStoreManager();
      DatastoreTransaction txn = storeMgr.getDatastoreTransaction(ec);
      if (txn != null) {
        Entity entity = (Entity)op.getAssociatedValue(txn);
View Full Code Here

   * @param pm The Persistence Manager
   * @return The Entity (if accessible)
   */
  public Entity getEntityFromJDO(Object pc, PersistenceManager pm) {
    ExecutionContext ec = ((JDOPersistenceManager)pm).getExecutionContext();
    ObjectProvider op = ec.findObjectProvider(pc);
    if (op != null) {
      DatastoreManager storeMgr = (DatastoreManager) ec.getStoreManager();
      DatastoreTransaction txn = storeMgr.getDatastoreTransaction(ec);
      if (txn != null) {
        Entity entity = (Entity)op.getAssociatedValue(txn);
View Full Code Here

    }

    ExecutionContext ec = parentOP.getExecutionContext();
    ApiAdapter apiAdapter = ec.getApiAdapter();

    ObjectProvider childOP = ec.findObjectProvider(child);
    if (apiAdapter.isNew(child) &&
        (childOP == null ||
         childOP.getAssociatedValue(((DatastoreManager)ec.getStoreManager()).getDatastoreTransaction(ec)) == null)) {
      // This condition is difficult to get right.  An object that has been persisted
      // (and therefore had its primary key already established) may still be considered
View Full Code Here

      // Mechanism 3, use attach parent info from ExecutionContext
      // TODO This will need a change to cater for unowned relations. How do we know which field is used?
      ObjectProvider ownerOP = ec.findObjectProviderOfOwnerForAttachingObject(op.getObject());
      if (ownerOP != null) {
        Object parentPojo = ownerOP.getObject();
        ObjectProvider mergeOP = ec.findObjectProvider(parentPojo);
        if (mergeOP != null) {
          parentKey = EntityUtils.getPrimaryKeyAsKey(ec.getApiAdapter(), mergeOP);
        }
      }
    }
View Full Code Here

    if (elementsIter != null) {
      while (elementsIter.hasNext()) {
        Object element = elementsIter.next();
        if (ec.getApiAdapter().isPersistable(element) && ec.getApiAdapter().isDeleted(element)) {
          // Element is waiting to be deleted so flush it (it has the FK)
          ObjectProvider objSM = ec.findObjectProvider(element);
          objSM.flush();
        } else {
          if (deleteElements) {
            ec.deleteObjectInternal(element);
          }
View Full Code Here

    else {
      // Ordered List - no index so null the FK (if nullable) or delete the element
      ExecutionContext ec = ownerOP.getExecutionContext();
      if (ownerMapping.isNullable()) {
        // Nullify the FK
        ObjectProvider elementSM = ec.findObjectProvider(element);
        if (relationType == RelationType.ONE_TO_MANY_BI) {
          // TODO This is ManagedRelations - move into RelationshipManager
          elementSM.replaceFieldMakeDirty(ownerMemberMetaData.getRelatedMemberMetaData(clr)[0].getAbsoluteFieldNumber(),
              null);
          if (ec.isFlushing()) {
View Full Code Here

    try {
      removing.set(true);

      if (!deleteElement) {
        // Nullify the index of the element
        ObjectProvider elementOP = ec.findObjectProvider(element);
        if (elementOP != null && !ec.getApiAdapter().isDeleted(element)) {
          Entity elementEntity = getOwnerEntity(elementOP);
          if (!storeMgr.storageVersionAtLeast(StorageVersion.READ_OWNED_CHILD_KEYS_FROM_PARENTS)) {
            // Remove the external index property from the element
            elementEntity.removeProperty(getIndexPropertyName());
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.