/** * Set this EntityFetchGroup on an entity implementing * {@link FetchGroupTracker}. */ public void setOnEntity(Object entity, AbstractSession session) { ((FetchGroupTracker)entity)._persistence_setFetchGroup(this); ((FetchGroupTracker)entity)._persistence_setSession(session); }
/** * Set this EntityFetchGroup on an entity implementing * {@link FetchGroupTracker}. */ public void setOnEntity(Object entity, AbstractSession session) { ((FetchGroupTracker)entity)._persistence_setFetchGroup(this); ((FetchGroupTracker)entity)._persistence_setSession(session); }
/** * INTERNAL: * Reset object attributes to the default their values. */ public void setObjectFetchGroup(Object source, FetchGroup fetchGroup, AbstractSession session) { FetchGroupTracker tracker = (FetchGroupTracker)source; tracker._persistence_setFetchGroup(fetchGroup); tracker._persistence_setSession(session); }
/** * INTERNAL: * Set fetch group into the object. */ public void setObjectFetchGroup(Object source, FetchGroup fetchGroup, AbstractSession session) { FetchGroupTracker tracker = (FetchGroupTracker)source; if(fetchGroup == null) { tracker._persistence_setFetchGroup(null); tracker._persistence_setSession(null); } else { if(fetchGroup.isEntityFetchGroup()) { // it's EntityFetchGroup - just set it tracker._persistence_setFetchGroup(fetchGroup); tracker._persistence_setSession(session); } else { EntityFetchGroup entityFetchGroup = this.getEntityFetchGroup(fetchGroup); if(entityFetchGroup != null) { tracker._persistence_setFetchGroup(entityFetchGroup); tracker._persistence_setSession(session); } else { tracker._persistence_setFetchGroup(null); tracker._persistence_setSession(null); } } } }
/** * INTERNAL: * Set fetch group into the object. */ public void setObjectFetchGroup(Object source, FetchGroup fetchGroup, AbstractSession session) { FetchGroupTracker tracker = (FetchGroupTracker)source; if(fetchGroup == null) { tracker._persistence_setFetchGroup(null); tracker._persistence_setSession(null); } else { if(fetchGroup.isEntityFetchGroup()) { // it's EntityFetchGroup - just set it tracker._persistence_setFetchGroup(fetchGroup); tracker._persistence_setSession(session); } else { EntityFetchGroup entityFetchGroup = this.getEntityFetchGroup(fetchGroup); if(entityFetchGroup != null) { tracker._persistence_setFetchGroup(entityFetchGroup); tracker._persistence_setSession(session); } else { tracker._persistence_setFetchGroup(null); tracker._persistence_setSession(null); } } } }
/** * Called on attempt to assign value to an attribute that hasn't been fetched yet. * Returns an error message in case exception should be thrown by the calling method, * null otherwise. */ @Override public String onUnfetchedAttributeForSet(FetchGroupTracker entity, String attributeName) { if (entity._persistence_getSession() != null) { return super.onUnfetchedAttributeForSet(entity, attributeName); } else { entity._persistence_setFetchGroup(new EntityFetchGroup(this, attributeName)); return null; } }
/** * Called on attempt to assign value to an attribute that hasn't been fetched yet. * Returns an error message in case exception should be thrown by the calling method, * null otherwise. */ @Override public String onUnfetchedAttributeForSet(FetchGroupTracker entity, String attributeName) { if (entity._persistence_getSession() != null) { return super.onUnfetchedAttributeForSet(entity, attributeName); } else { entity._persistence_setFetchGroup(new EntityFetchGroup(this, attributeName)); return null; } }
protected void mergeSystemState(Entity srcEntity, Entity dstEntity) { if (dstEntity instanceof BaseGenericIdEntity) { BaseEntityInternalAccess.copySystemState((BaseGenericIdEntity) srcEntity, (BaseGenericIdEntity) dstEntity); if (srcEntity instanceof FetchGroupTracker && dstEntity instanceof FetchGroupTracker) { FetchGroup srcFetchGroup = ((FetchGroupTracker) srcEntity)._persistence_getFetchGroup(); FetchGroup dstFetchGroup = ((FetchGroupTracker) dstEntity)._persistence_getFetchGroup(); if (srcFetchGroup == null || dstFetchGroup == null) { ((FetchGroupTracker) dstEntity)._persistence_setFetchGroup(null); } else { ((FetchGroupTracker) dstEntity)._persistence_setFetchGroup(FetchGroupUtils.mergeFetchGroups(srcFetchGroup, dstFetchGroup)); } } } else if (dstEntity instanceof AbstractNotPersistentEntity) { BaseEntityInternalAccess.setNew((AbstractNotPersistentEntity) dstEntity, BaseEntityInternalAccess.isNew((AbstractNotPersistentEntity) srcEntity)); } }
@Override public void postRefresh(DescriptorEvent event) { if (event.getObject() instanceof FetchGroupTracker) { FetchGroupTracker entity = (FetchGroupTracker) event.getObject(); FetchGroup fetchGroup = entity._persistence_getFetchGroup(); if (fetchGroup != null && !(fetchGroup instanceof CubaEntityFetchGroup)) entity._persistence_setFetchGroup(new CubaEntityFetchGroup(fetchGroup)); } }
/** * Returns the clone of the specified object. This is called only from unit of work. * This only instantiates the clone instance, it does not clone the attributes, * this allows the stub of the clone to be registered before cloning its parts. */ public Object instantiateClone(Object domainObject, AbstractSession session) { Object clone = this.descriptor.getCopyPolicy().buildClone(domainObject, session); // Clear change tracker. if (clone instanceof ChangeTracker) { ((ChangeTracker)clone)._persistence_setPropertyChangeListener(null); } if(clone instanceof FetchGroupTracker) { ((FetchGroupTracker)clone)._persistence_setFetchGroup(null); ((FetchGroupTracker)clone)._persistence_setSession(null); } clearPrimaryKey(clone); return clone; }
/** * Returns the clone of the specified object. This is called only from unit of work. * This only instantiates the clone instance, it does not clone the attributes, * this allows the stub of the clone to be registered before cloning its parts. */ public Object instantiateClone(Object domainObject, AbstractSession session) { Object clone = this.descriptor.getCopyPolicy().buildClone(domainObject, session); // Clear change tracker. if (clone instanceof ChangeTracker) { ((ChangeTracker)clone)._persistence_setPropertyChangeListener(null); } if(clone instanceof FetchGroupTracker) { ((FetchGroupTracker)clone)._persistence_setFetchGroup(null); ((FetchGroupTracker)clone)._persistence_setSession(null); } clearPrimaryKey(clone); return clone; }
List<String> attributeNames = new ArrayList<>(fetchGroup.getAttributeNames()); attributeNames.removeAll(attributesToRemove); fetchGroupTracker._persistence_setFetchGroup(new CubaEntityFetchGroup(attributeNames)); fetchGroupTracker._persistence_setFetchGroup(new CubaEntityFetchGroup(attributeNames));
@Override public void postBuild(DescriptorEvent event) { if (event.getObject() instanceof BaseGenericIdEntity) { BaseEntityInternalAccess.setNew((BaseGenericIdEntity) event.getObject(), false); } if (event.getObject() instanceof FetchGroupTracker) { FetchGroupTracker entity = (FetchGroupTracker) event.getObject(); FetchGroup fetchGroup = entity._persistence_getFetchGroup(); if (fetchGroup != null && !(fetchGroup instanceof CubaEntityFetchGroup)) entity._persistence_setFetchGroup(new CubaEntityFetchGroup(fetchGroup)); } }
@SuppressWarnings("unchecked") protected void copySystemState(Entity srcEntity, Entity dstEntity) { if (dstEntity instanceof BaseGenericIdEntity) { ((BaseGenericIdEntity) dstEntity).setId(srcEntity.getId()); BaseEntityInternalAccess.copySystemState((BaseGenericIdEntity) srcEntity, (BaseGenericIdEntity) dstEntity); if (srcEntity instanceof FetchGroupTracker && dstEntity instanceof FetchGroupTracker) { FetchGroup srcFetchGroup = ((FetchGroupTracker) srcEntity)._persistence_getFetchGroup(); ((FetchGroupTracker) dstEntity)._persistence_setFetchGroup(srcFetchGroup); } } else if (dstEntity instanceof AbstractNotPersistentEntity) { ((AbstractNotPersistentEntity) dstEntity).setId((UUID) srcEntity.getId()); BaseEntityInternalAccess.setNew((AbstractNotPersistentEntity) dstEntity, BaseEntityInternalAccess.isNew((AbstractNotPersistentEntity) srcEntity)); } if (dstEntity instanceof Versioned) { ((Versioned) dstEntity).setVersion(((Versioned) srcEntity).getVersion()); } }
@Override public void postClone(DescriptorEvent event) { // in shared cache mode, postBuild event is missed, so we repeat it here if (event.getObject() instanceof BaseGenericIdEntity) { BaseEntityInternalAccess.setNew((BaseGenericIdEntity) event.getObject(), false); } if (event.getObject() instanceof FetchGroupTracker) { FetchGroupTracker entity = (FetchGroupTracker) event.getObject(); FetchGroup fetchGroup = entity._persistence_getFetchGroup(); if (fetchGroup != null && !(fetchGroup instanceof CubaEntityFetchGroup)) entity._persistence_setFetchGroup(new CubaEntityFetchGroup(fetchGroup)); } if (event.getObject() instanceof Entity) support.registerInstance((Entity) event.getObject(), event.getSession()); }
FetchGroup fetchGroup = fetchGroupTracker._persistence_getFetchGroup(); if (fetchGroup != null && !(fetchGroup instanceof CubaEntityFetchGroup)) fetchGroupTracker._persistence_setFetchGroup(new CubaEntityFetchGroup(fetchGroup));
query.setShouldMaintainCache(false); entity._persistence_setFetchGroup(null); entity._persistence_setSession(null); entity._persistence_setFetchGroup(this); entity._persistence_setSession(session);
fetchGroup.addAttribute(mapping.getAttributeName()); ((FetchGroupTracker)reference)._persistence_setFetchGroup(fetchGroup); reference = registerExistingObject(reference);
query.setShouldMaintainCache(false); entity._persistence_setFetchGroup(null); entity._persistence_setSession(null); } else if (newFetchGroup != null) { entity._persistence_setFetchGroup(this); entity._persistence_setSession(session);