public class org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo extends org.apache.isis.core.transaction.changetracking.PersistenceCallbackHandlerAbstract implements org.apache.isis.applib.services.metrics.MetricsService, org.apache.isis.core.transaction.changetracking.EntityChangeTracker, org.apache.isis.core.metamodel.services.objectlifecycle.HasEnlistedEntityPropertyChanges, org.apache.isis.core.transaction.changetracking.HasEnlistedEntityChanges
{
private static final org.apache.logging.log4j.Logger log;
private final java.util.Map propertyChangeRecordsById;
private final org.apache.isis.commons.internal.base._Lazy entityPropertyChangeRecordsForPublishing;
private final java.util.Map changeKindByEnlistedAdapter;
private final org.apache.isis.core.transaction.changetracking.EntityPropertyChangePublisher entityPropertyChangePublisher;
private final org.apache.isis.core.transaction.changetracking.EntityChangesPublisher entityChangesPublisher;
private final javax.inject.Provider interactionProviderProvider;
private final java.util.concurrent.atomic.LongAdder numberEntitiesLoaded;
private final java.util.concurrent.atomic.LongAdder entityChangeEventCount;
private final java.util.concurrent.atomic.AtomicBoolean persitentChangesEncountered;
public void <init>(org.apache.isis.core.transaction.changetracking.EntityPropertyChangePublisher, org.apache.isis.core.transaction.changetracking.EntityChangesPublisher, org.apache.isis.applib.services.eventbus.EventBusService, javax.inject.Provider)
{
java.util.concurrent.atomic.LongAdder v, v;
javax.inject.Provider v;
org.apache.isis.core.transaction.changetracking.EntityChangesPublisher v;
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.isis.applib.services.eventbus.EventBusService v;
java.util.function.Supplier v;
java.util.LinkedHashMap v, v;
org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo v;
org.apache.isis.commons.internal.base._Lazy v;
org.apache.isis.core.transaction.changetracking.EntityPropertyChangePublisher v;
v := @this: org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo;
v := @parameter: org.apache.isis.core.transaction.changetracking.EntityPropertyChangePublisher;
v := @parameter: org.apache.isis.core.transaction.changetracking.EntityChangesPublisher;
v := @parameter: org.apache.isis.applib.services.eventbus.EventBusService;
v := @parameter: javax.inject.Provider;
specialinvoke v.<org.apache.isis.core.transaction.changetracking.PersistenceCallbackHandlerAbstract: void <init>(org.apache.isis.applib.services.eventbus.EventBusService)>(v);
v = staticinvoke <org.apache.isis.commons.internal.collections._Maps: java.util.LinkedHashMap newLinkedHashMap()>();
v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: java.util.Map propertyChangeRecordsById> = v;
v = staticinvoke <org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo$capturePostValuesAndDrain__1: java.util.function.Supplier bootstrap$(org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo)>(v);
v = staticinvoke <org.apache.isis.commons.internal.base._Lazy: org.apache.isis.commons.internal.base._Lazy threadSafe(java.util.function.Supplier)>(v);
v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: org.apache.isis.commons.internal.base._Lazy entityPropertyChangeRecordsForPublishing> = v;
v = staticinvoke <org.apache.isis.commons.internal.collections._Maps: java.util.LinkedHashMap newLinkedHashMap()>();
v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: java.util.Map changeKindByEnlistedAdapter> = v;
v = new java.util.concurrent.atomic.LongAdder;
specialinvoke v.<java.util.concurrent.atomic.LongAdder: void <init>()>();
v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: java.util.concurrent.atomic.LongAdder numberEntitiesLoaded> = v;
v = new java.util.concurrent.atomic.LongAdder;
specialinvoke v.<java.util.concurrent.atomic.LongAdder: void <init>()>();
v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: java.util.concurrent.atomic.LongAdder entityChangeEventCount> = v;
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>()>();
v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: java.util.concurrent.atomic.AtomicBoolean persitentChangesEncountered> = v;
v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: org.apache.isis.core.transaction.changetracking.EntityPropertyChangePublisher entityPropertyChangePublisher> = v;
v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: org.apache.isis.core.transaction.changetracking.EntityChangesPublisher entityChangesPublisher> = v;
v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: javax.inject.Provider interactionProviderProvider> = v;
return;
}
private boolean isEnlisted(org.apache.isis.core.metamodel.spec.ManagedObject)
{
org.apache.isis.core.metamodel.spec.ManagedObject v;
java.util.function.Function v;
java.lang.NullPointerException v;
org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo v;
java.util.Map v;
java.lang.Boolean v;
java.util.Optional v, v;
java.lang.Object v;
boolean v;
v := @this: org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo;
v := @parameter: org.apache.isis.core.metamodel.spec.ManagedObject;
if v != null goto label;
v = new java.lang.NullPointerException;
specialinvoke v.<java.lang.NullPointerException: void <init>(java.lang.String)>("adapter is marked non-null but is null");
throw v;
label:
v = staticinvoke <org.apache.isis.core.metamodel.spec.ManagedObjects: java.util.Optional bookmark(org.apache.isis.core.metamodel.spec.ManagedObject)>(v);
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: java.util.Map changeKindByEnlistedAdapter>;
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo$containsKey__2: java.util.function.Function bootstrap$(java.util.Map)>(v);
v = virtualinvoke v.<java.util.Optional: java.util.Optional map(java.util.function.Function)>(v);
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(0);
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElse(java.lang.Object)>(v);
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
return v;
}
private void enlistCreatedInternal(org.apache.isis.core.metamodel.spec.ManagedObject)
{
java.util.function.Consumer v;
org.apache.isis.applib.'annotation'.EntityChangeKind v;
org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo v;
org.apache.isis.core.metamodel.spec.ManagedObject v;
java.lang.NullPointerException v;
boolean v;
v := @this: org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo;
v := @parameter: org.apache.isis.core.metamodel.spec.ManagedObject;
if v != null goto label;
v = new java.lang.NullPointerException;
specialinvoke v.<java.lang.NullPointerException: void <init>(java.lang.String)>("adapter is marked non-null but is null");
throw v;
label:
v = specialinvoke v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: boolean isEntityEnabledForChangePublishing(org.apache.isis.core.metamodel.spec.ManagedObject)>(v);
if v != 0 goto label;
return;
label:
v = <org.apache.isis.applib.'annotation'.EntityChangeKind: org.apache.isis.applib.'annotation'.EntityChangeKind CREATE>;
specialinvoke v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: boolean enlistForChangeKindPublishing(org.apache.isis.core.metamodel.spec.ManagedObject,org.apache.isis.applib.'annotation'.EntityChangeKind)>(v, v);
v = staticinvoke <org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo$lambda_enlistCreatedInternal_0__3: java.util.function.Consumer bootstrap$()>();
specialinvoke v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: void enlistForPreAndPostValuePublishing(org.apache.isis.core.metamodel.spec.ManagedObject,java.util.function.Consumer)>(v, v);
return;
}
private void enlistUpdatingInternal(org.apache.isis.core.metamodel.spec.ManagedObject)
{
java.util.function.Consumer v;
org.apache.isis.applib.'annotation'.EntityChangeKind v;
org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo v;
org.apache.isis.core.metamodel.spec.ManagedObject v;
java.lang.NullPointerException v;
boolean v;
v := @this: org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo;
v := @parameter: org.apache.isis.core.metamodel.spec.ManagedObject;
if v != null goto label;
v = new java.lang.NullPointerException;
specialinvoke v.<java.lang.NullPointerException: void <init>(java.lang.String)>("entity is marked non-null but is null");
throw v;
label:
v = specialinvoke v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: boolean isEntityEnabledForChangePublishing(org.apache.isis.core.metamodel.spec.ManagedObject)>(v);
if v != 0 goto label;
return;
label:
v = <org.apache.isis.applib.'annotation'.EntityChangeKind: org.apache.isis.applib.'annotation'.EntityChangeKind UPDATE>;
specialinvoke v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: boolean enlistForChangeKindPublishing(org.apache.isis.core.metamodel.spec.ManagedObject,org.apache.isis.applib.'annotation'.EntityChangeKind)>(v, v);
v = staticinvoke <org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo$updatePreValue__4: java.util.function.Consumer bootstrap$()>();
specialinvoke v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: void enlistForPreAndPostValuePublishing(org.apache.isis.core.metamodel.spec.ManagedObject,java.util.function.Consumer)>(v, v);
return;
}
private void enlistDeletingInternal(org.apache.isis.core.metamodel.spec.ManagedObject)
{
java.util.function.Consumer v;
org.apache.isis.applib.'annotation'.EntityChangeKind v;
org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo v;
org.apache.isis.core.metamodel.spec.ManagedObject v;
java.lang.NullPointerException v;
boolean v, v;
v := @this: org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo;
v := @parameter: org.apache.isis.core.metamodel.spec.ManagedObject;
if v != null goto label;
v = new java.lang.NullPointerException;
specialinvoke v.<java.lang.NullPointerException: void <init>(java.lang.String)>("adapter is marked non-null but is null");
throw v;
label:
v = specialinvoke v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: boolean isEntityEnabledForChangePublishing(org.apache.isis.core.metamodel.spec.ManagedObject)>(v);
if v != 0 goto label;
return;
label:
v = <org.apache.isis.applib.'annotation'.EntityChangeKind: org.apache.isis.applib.'annotation'.EntityChangeKind DELETE>;
v = specialinvoke v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: boolean enlistForChangeKindPublishing(org.apache.isis.core.metamodel.spec.ManagedObject,org.apache.isis.applib.'annotation'.EntityChangeKind)>(v, v);
if v == 0 goto label;
v = staticinvoke <org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo$updatePreValue__5: java.util.function.Consumer bootstrap$()>();
specialinvoke v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: void enlistForPreAndPostValuePublishing(org.apache.isis.core.metamodel.spec.ManagedObject,java.util.function.Consumer)>(v, v);
label:
return;
}
java.util.Set snapshotPropertyChangeRecords()
{
org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo v;
java.lang.Object v;
org.apache.isis.commons.internal.base._Lazy v;
v := @this: org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo;
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: org.apache.isis.commons.internal.base._Lazy entityPropertyChangeRecordsForPublishing>;
v = interfaceinvoke v.<org.apache.isis.commons.internal.base._Lazy: java.lang.Object get()>();
return v;
}
private boolean isEntityEnabledForChangePublishing(org.apache.isis.core.metamodel.spec.ManagedObject)
{
java.lang.IllegalStateException v;
java.util.concurrent.atomic.LongAdder v;
java.lang.Object[] v;
org.apache.isis.core.metamodel.spec.ManagedObject v;
org.apache.isis.core.metamodel.spec.ObjectSpecification v;
java.lang.NullPointerException v;
org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo v;
org.apache.isis.commons.internal.base._Lazy v;
boolean v, v;
v := @this: org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo;
v := @parameter: org.apache.isis.core.metamodel.spec.ManagedObject;
if v != null goto label;
v = new java.lang.NullPointerException;
specialinvoke v.<java.lang.NullPointerException: void <init>(java.lang.String)>("adapter is marked non-null but is null");
throw v;
label:
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: org.apache.isis.commons.internal.base._Lazy entityPropertyChangeRecordsForPublishing>;
v = interfaceinvoke v.<org.apache.isis.commons.internal.base._Lazy: boolean isMemoized()>();
if v == 0 goto label;
v = newarray (java.lang.Object)[0];
v = staticinvoke <org.apache.isis.commons.internal.exceptions._Exceptions: java.lang.IllegalStateException illegalState(java.lang.String,java.lang.Object[])>("Cannot enlist additional changes for auditing, since changedObjectPropertiesRef was already prepared (memoized) for auditing.", v);
throw v;
label:
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: java.util.concurrent.atomic.LongAdder entityChangeEventCount>;
virtualinvoke v.<java.util.concurrent.atomic.LongAdder: void increment()>();
specialinvoke v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: void enableCommandPublishing()>();
v = interfaceinvoke v.<org.apache.isis.core.metamodel.spec.ManagedObject: org.apache.isis.core.metamodel.spec.ObjectSpecification getSpecification()>();
v = staticinvoke <org.apache.isis.core.metamodel.facets.object.publish.entitychange.EntityChangePublishingFacet: boolean isPublishingEnabled(org.apache.isis.core.metamodel.facetapi.FacetHolder)>(v);
if v != 0 goto label;
return 0;
label:
return 1;
}
public void onTransactionCompleting(org.apache.isis.core.transaction.events.TransactionBeforeCompletionEvent)
{
java.lang.Throwable v;
org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo v;
org.apache.isis.core.transaction.events.TransactionBeforeCompletionEvent v;
v := @this: org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo;
v := @parameter: org.apache.isis.core.transaction.events.TransactionBeforeCompletionEvent;
label:
specialinvoke v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: void doPublish()>();
label:
specialinvoke v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: void postPublishing()>();
goto label;
label:
v := @caughtexception;
specialinvoke v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: void postPublishing()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private void doPublish()
{
org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo v;
org.apache.logging.log4j.Logger v;
javax.inject.Provider v;
org.apache.isis.core.transaction.changetracking.EntityChangesPublisher v;
org.apache.isis.core.transaction.changetracking.EntityPropertyChangePublisher v;
v := @this: org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo;
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: javax.inject.Provider interactionProviderProvider>;
staticinvoke <org.apache.isis.persistence.jdo.integration.changetracking._Xray: void publish(org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo,javax.inject.Provider)>(v, v);
v = <org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: org.apache.logging.log4j.Logger log>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void debug(java.lang.String)>("about to publish entity changes");
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: org.apache.isis.core.transaction.changetracking.EntityPropertyChangePublisher entityPropertyChangePublisher>;
interfaceinvoke v.<org.apache.isis.core.transaction.changetracking.EntityPropertyChangePublisher: void publishChangedProperties(org.apache.isis.core.metamodel.services.objectlifecycle.HasEnlistedEntityPropertyChanges)>(v);
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: org.apache.isis.core.transaction.changetracking.EntityChangesPublisher entityChangesPublisher>;
interfaceinvoke v.<org.apache.isis.core.transaction.changetracking.EntityChangesPublisher: void publishChangingEntities(org.apache.isis.core.transaction.changetracking.HasEnlistedEntityChanges)>(v);
return;
}
private void postPublishing()
{
org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo v;
java.util.concurrent.atomic.LongAdder v, v;
org.apache.logging.log4j.Logger v;
org.apache.isis.commons.internal.base._Lazy v;
java.util.Map v, v;
v := @this: org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo;
v = <org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: org.apache.logging.log4j.Logger log>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void debug(java.lang.String)>("purging entity change records");
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: java.util.Map propertyChangeRecordsById>;
interfaceinvoke v.<java.util.Map: void clear()>();
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: java.util.Map changeKindByEnlistedAdapter>;
interfaceinvoke v.<java.util.Map: void clear()>();
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: org.apache.isis.commons.internal.base._Lazy entityPropertyChangeRecordsForPublishing>;
interfaceinvoke v.<org.apache.isis.commons.internal.base._Lazy: void clear()>();
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: java.util.concurrent.atomic.LongAdder entityChangeEventCount>;
virtualinvoke v.<java.util.concurrent.atomic.LongAdder: void reset()>();
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: java.util.concurrent.atomic.LongAdder numberEntitiesLoaded>;
virtualinvoke v.<java.util.concurrent.atomic.LongAdder: void reset()>();
return;
}
private void enableCommandPublishing()
{
org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo v;
org.apache.isis.applib.services.command.Command$Updater v;
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.isis.applib.services.iactn.Interaction v;
org.apache.isis.applib.services.command.Command v;
boolean v;
v := @this: org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo;
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: java.util.concurrent.atomic.AtomicBoolean persitentChangesEncountered>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean getAndSet(boolean)>(1);
if v != 0 goto label;
v = virtualinvoke v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: org.apache.isis.applib.services.iactn.Interaction currentInteraction()>();
v = interfaceinvoke v.<org.apache.isis.applib.services.iactn.Interaction: org.apache.isis.applib.services.command.Command getCommand()>();
v = virtualinvoke v.<org.apache.isis.applib.services.command.Command: org.apache.isis.applib.services.command.Command$Updater updater()>();
virtualinvoke v.<org.apache.isis.applib.services.command.Command$Updater: void setSystemStateChanged(boolean)>(1);
label:
return;
}
public java.util.Optional getEntityChanges(java.sql.Timestamp, java.lang.String)
{
org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo v;
java.sql.Timestamp v;
java.util.Optional v;
java.lang.String v;
v := @this: org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo;
v := @parameter: java.sql.Timestamp;
v := @parameter: java.lang.String;
v = staticinvoke <org.apache.isis.persistence.jdo.integration.changetracking._ChangingEntitiesFactory: java.util.Optional createChangingEntities(java.sql.Timestamp,java.lang.String,org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo)>(v, v, v);
return v;
}
public org.apache.isis.commons.collections.Can getPropertyChanges(java.sql.Timestamp, java.lang.String, org.apache.isis.applib.services.xactn.TransactionId)
{
java.sql.Timestamp v;
java.util.Set v;
org.apache.isis.applib.services.xactn.TransactionId v;
java.util.function.Function v;
org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo v;
java.util.stream.Stream v, v;
java.lang.Object v;
java.lang.String v;
java.util.stream.Collector v;
v := @this: org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo;
v := @parameter: java.sql.Timestamp;
v := @parameter: java.lang.String;
v := @parameter: org.apache.isis.applib.services.xactn.TransactionId;
v = virtualinvoke v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: java.util.Set snapshotPropertyChangeRecords()>();
v = interfaceinvoke v.<java.util.Set: java.util.stream.Stream stream()>();
v = staticinvoke <org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo$lambda_getPropertyChanges_1__6: java.util.function.Function bootstrap$(java.sql.Timestamp,java.lang.String,org.apache.isis.applib.services.xactn.TransactionId)>(v, v, v);
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <org.apache.isis.commons.collections.Can: java.util.stream.Collector toCan()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
return v;
}
org.apache.isis.applib.services.iactn.Interaction currentInteraction()
{
org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo v;
javax.inject.Provider v;
org.apache.isis.applib.services.iactn.Interaction v;
java.lang.Object v;
v := @this: org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo;
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: javax.inject.Provider interactionProviderProvider>;
v = interfaceinvoke v.<javax.inject.Provider: java.lang.Object get()>();
v = interfaceinvoke v.<org.apache.isis.applib.services.iactn.InteractionProvider: org.apache.isis.applib.services.iactn.Interaction currentInteractionElseFail()>();
return v;
}
private boolean enlistForChangeKindPublishing(org.apache.isis.core.metamodel.spec.ManagedObject, org.apache.isis.applib.'annotation'.EntityChangeKind)
{
org.apache.isis.applib.'annotation'.EntityChangeKind v;
java.lang.NullPointerException v, v;
int[] v, v, v;
java.util.Map v, v, v, v;
int v, v, v, v, v, v;
boolean v;
org.apache.isis.core.metamodel.spec.ManagedObject v;
org.apache.isis.applib.services.bookmark.Bookmark v;
org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo v;
java.lang.Object v;
v := @this: org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo;
v := @parameter: org.apache.isis.core.metamodel.spec.ManagedObject;
v := @parameter: org.apache.isis.applib.'annotation'.EntityChangeKind;
if v != null goto label;
v = new java.lang.NullPointerException;
specialinvoke v.<java.lang.NullPointerException: void <init>(java.lang.String)>("entity is marked non-null but is null");
throw v;
label:
if v != null goto label;
v = new java.lang.NullPointerException;
specialinvoke v.<java.lang.NullPointerException: void <init>(java.lang.String)>("changeKind is marked non-null but is null");
throw v;
label:
v = staticinvoke <org.apache.isis.core.metamodel.spec.ManagedObjects: org.apache.isis.applib.services.bookmark.Bookmark bookmarkElseFail(org.apache.isis.core.metamodel.spec.ManagedObject)>(v);
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: java.util.Map changeKindByEnlistedAdapter>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: java.util.Map changeKindByEnlistedAdapter>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
return 1;
label:
v = <org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo$1: int[] $SwitchMap$org$apache$isis$applib$annotation$EntityChangeKind>;
v = virtualinvoke v.<org.apache.isis.applib.'annotation'.EntityChangeKind: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
default: goto label;
};
label:
v = <org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo$1: int[] $SwitchMap$org$apache$isis$applib$annotation$EntityChangeKind>;
v = virtualinvoke v.<org.apache.isis.applib.'annotation'.EntityChangeKind: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
default: goto label;
};
label:
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: java.util.Map changeKindByEnlistedAdapter>;
interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
label:
return 0;
label:
v = <org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo$1: int[] $SwitchMap$org$apache$isis$applib$annotation$EntityChangeKind>;
v = virtualinvoke v.<org.apache.isis.applib.'annotation'.EntityChangeKind: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
default: goto label;
};
label:
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: java.util.Map changeKindByEnlistedAdapter>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
return 1;
label:
return 0;
label:
return 0;
label:
v = 0;
return v;
}
private void enlistForPreAndPostValuePublishing(org.apache.isis.core.metamodel.spec.ManagedObject, java.util.function.Consumer)
{
java.util.function.Predicate v, v;
org.apache.isis.core.metamodel.spec.ManagedObject v;
org.apache.isis.core.metamodel.spec.feature.MixedIn v;
org.apache.isis.core.metamodel.spec.ObjectSpecification v;
java.util.function.Function v;
java.util.function.Consumer v, v;
org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo v;
java.util.stream.Stream v, v, v, v;
org.apache.logging.log4j.Logger v;
v := @this: org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo;
v := @parameter: org.apache.isis.core.metamodel.spec.ManagedObject;
v := @parameter: java.util.function.Consumer;
v = <org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: org.apache.logging.log4j.Logger log>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void debug(java.lang.String,java.lang.Object)>("enlist entity\'s property changes for publishing {}", v);
v = interfaceinvoke v.<org.apache.isis.core.metamodel.spec.ManagedObject: org.apache.isis.core.metamodel.spec.ObjectSpecification getSpecification()>();
v = <org.apache.isis.core.metamodel.spec.feature.MixedIn: org.apache.isis.core.metamodel.spec.feature.MixedIn EXCLUDED>;
v = interfaceinvoke v.<org.apache.isis.core.metamodel.spec.ObjectSpecification: java.util.stream.Stream streamProperties(org.apache.isis.core.metamodel.spec.feature.MixedIn)>(v);
v = staticinvoke <org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo$lambda_enlistForPreAndPostValuePublishing_2__7: java.util.function.Predicate bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream filter(java.util.function.Predicate)>(v);
v = staticinvoke <org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo$lambda_enlistForPreAndPostValuePublishing_3__8: java.util.function.Function bootstrap$(org.apache.isis.core.metamodel.spec.ManagedObject)>(v);
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo$lambda_enlistForPreAndPostValuePublishing_4__9: java.util.function.Predicate bootstrap$(org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo)>(v);
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream filter(java.util.function.Predicate)>(v);
v = staticinvoke <org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo$lambda_enlistForPreAndPostValuePublishing_5__10: java.util.function.Consumer bootstrap$(org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo,java.util.function.Consumer)>(v, v);
interfaceinvoke v.<java.util.stream.Stream: void forEach(java.util.function.Consumer)>(v);
return;
}
public java.util.Set capturePostValuesAndDrain()
{
java.util.function.Predicate v;
java.util.Collection v;
java.util.function.Consumer v;
org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo v;
java.util.stream.Stream v, v, v;
java.util.Map v, v;
java.lang.Object v;
java.util.stream.Collector v;
v := @this: org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo;
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: java.util.Map propertyChangeRecordsById>;
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: java.util.stream.Stream stream()>();
v = staticinvoke <org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo$lambda_capturePostValuesAndDrain_6__11: java.util.function.Consumer bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream peek(java.util.function.Consumer)>(v);
v = staticinvoke <org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo$lambda_capturePostValuesAndDrain_7__12: java.util.function.Predicate bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream filter(java.util.function.Predicate)>(v);
v = staticinvoke <org.apache.isis.commons.internal.collections._Sets: java.util.stream.Collector toUnmodifiable()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: java.util.Map propertyChangeRecordsById>;
interfaceinvoke v.<java.util.Map: void clear()>();
return v;
}
long countPotentialPropertyChangeRecords()
{
int v;
org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo v;
java.util.Map v;
v := @this: org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo;
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: java.util.Map propertyChangeRecordsById>;
v = interfaceinvoke v.<java.util.Map: int size()>();
return v;
}
public int numberEntitiesLoaded()
{
org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo v;
java.util.concurrent.atomic.LongAdder v;
int v;
long v;
v := @this: org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo;
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: java.util.concurrent.atomic.LongAdder numberEntitiesLoaded>;
v = virtualinvoke v.<java.util.concurrent.atomic.LongAdder: long longValue()>();
v = staticinvoke <java.lang.Math: int toIntExact(long)>(v);
return v;
}
public int numberEntitiesDirtied()
{
int v;
org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo v;
java.util.Map v;
v := @this: org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo;
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: java.util.Map changeKindByEnlistedAdapter>;
v = interfaceinvoke v.<java.util.Map: int size()>();
return v;
}
public void enlistCreated(org.apache.isis.core.metamodel.spec.ManagedObject)
{
org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo v;
javax.inject.Provider v;
org.apache.isis.core.metamodel.spec.ManagedObject v;
boolean v;
v := @this: org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo;
v := @parameter: org.apache.isis.core.metamodel.spec.ManagedObject;
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: javax.inject.Provider interactionProviderProvider>;
staticinvoke <org.apache.isis.persistence.jdo.integration.changetracking._Xray: void enlistCreated(org.apache.isis.core.metamodel.spec.ManagedObject,javax.inject.Provider)>(v, v);
v = specialinvoke v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: boolean isEnlisted(org.apache.isis.core.metamodel.spec.ManagedObject)>(v);
specialinvoke v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: void enlistCreatedInternal(org.apache.isis.core.metamodel.spec.ManagedObject)>(v);
if v != 0 goto label;
staticinvoke <org.apache.isis.core.metamodel.facets.object.callbacks.CallbackFacet: void callCallback(org.apache.isis.core.metamodel.spec.ManagedObject,java.lang.Class)>(v, class "Lorg/apache/isis/core/metamodel/facets/object/callbacks/PersistedCallbackFacet;");
virtualinvoke v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: void postLifecycleEventIfRequired(org.apache.isis.core.metamodel.spec.ManagedObject,java.lang.Class)>(v, class "Lorg/apache/isis/core/metamodel/facets/object/callbacks/PersistedLifecycleEventFacet;");
label:
return;
}
public void enlistDeleting(org.apache.isis.core.metamodel.spec.ManagedObject)
{
org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo v;
javax.inject.Provider v;
org.apache.isis.core.metamodel.spec.ManagedObject v;
v := @this: org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo;
v := @parameter: org.apache.isis.core.metamodel.spec.ManagedObject;
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: javax.inject.Provider interactionProviderProvider>;
staticinvoke <org.apache.isis.persistence.jdo.integration.changetracking._Xray: void enlistDeleting(org.apache.isis.core.metamodel.spec.ManagedObject,javax.inject.Provider)>(v, v);
specialinvoke v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: void enlistDeletingInternal(org.apache.isis.core.metamodel.spec.ManagedObject)>(v);
staticinvoke <org.apache.isis.core.metamodel.facets.object.callbacks.CallbackFacet: void callCallback(org.apache.isis.core.metamodel.spec.ManagedObject,java.lang.Class)>(v, class "Lorg/apache/isis/core/metamodel/facets/object/callbacks/RemovingCallbackFacet;");
virtualinvoke v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: void postLifecycleEventIfRequired(org.apache.isis.core.metamodel.spec.ManagedObject,java.lang.Class)>(v, class "Lorg/apache/isis/core/metamodel/facets/object/callbacks/RemovingLifecycleEventFacet;");
return;
}
public void enlistUpdating(org.apache.isis.core.metamodel.spec.ManagedObject)
{
org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo v;
javax.inject.Provider v;
org.apache.isis.core.metamodel.spec.ManagedObject v;
boolean v;
v := @this: org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo;
v := @parameter: org.apache.isis.core.metamodel.spec.ManagedObject;
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: javax.inject.Provider interactionProviderProvider>;
staticinvoke <org.apache.isis.persistence.jdo.integration.changetracking._Xray: void enlistUpdating(org.apache.isis.core.metamodel.spec.ManagedObject,javax.inject.Provider)>(v, v);
v = specialinvoke v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: boolean isEnlisted(org.apache.isis.core.metamodel.spec.ManagedObject)>(v);
specialinvoke v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: void enlistUpdatingInternal(org.apache.isis.core.metamodel.spec.ManagedObject)>(v);
if v != 0 goto label;
staticinvoke <org.apache.isis.core.metamodel.facets.object.callbacks.CallbackFacet: void callCallback(org.apache.isis.core.metamodel.spec.ManagedObject,java.lang.Class)>(v, class "Lorg/apache/isis/core/metamodel/facets/object/callbacks/UpdatingCallbackFacet;");
virtualinvoke v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: void postLifecycleEventIfRequired(org.apache.isis.core.metamodel.spec.ManagedObject,java.lang.Class)>(v, class "Lorg/apache/isis/core/metamodel/facets/object/callbacks/UpdatingLifecycleEventFacet;");
label:
return;
}
public void recognizeLoaded(org.apache.isis.core.metamodel.spec.ManagedObject)
{
org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo v;
java.util.concurrent.atomic.LongAdder v;
javax.inject.Provider v;
org.apache.isis.core.metamodel.spec.ManagedObject v;
v := @this: org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo;
v := @parameter: org.apache.isis.core.metamodel.spec.ManagedObject;
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: javax.inject.Provider interactionProviderProvider>;
staticinvoke <org.apache.isis.persistence.jdo.integration.changetracking._Xray: void recognizeLoaded(org.apache.isis.core.metamodel.spec.ManagedObject,javax.inject.Provider)>(v, v);
staticinvoke <org.apache.isis.core.metamodel.facets.object.callbacks.CallbackFacet: void callCallback(org.apache.isis.core.metamodel.spec.ManagedObject,java.lang.Class)>(v, class "Lorg/apache/isis/core/metamodel/facets/object/callbacks/LoadedCallbackFacet;");
virtualinvoke v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: void postLifecycleEventIfRequired(org.apache.isis.core.metamodel.spec.ManagedObject,java.lang.Class)>(v, class "Lorg/apache/isis/core/metamodel/facets/object/callbacks/LoadedLifecycleEventFacet;");
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: java.util.concurrent.atomic.LongAdder numberEntitiesLoaded>;
virtualinvoke v.<java.util.concurrent.atomic.LongAdder: void increment()>();
return;
}
public void recognizePersisting(org.apache.isis.core.metamodel.spec.ManagedObject)
{
org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo v;
javax.inject.Provider v;
org.apache.isis.core.metamodel.spec.ManagedObject v;
v := @this: org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo;
v := @parameter: org.apache.isis.core.metamodel.spec.ManagedObject;
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: javax.inject.Provider interactionProviderProvider>;
staticinvoke <org.apache.isis.persistence.jdo.integration.changetracking._Xray: void recognizePersisting(org.apache.isis.core.metamodel.spec.ManagedObject,javax.inject.Provider)>(v, v);
staticinvoke <org.apache.isis.core.metamodel.facets.object.callbacks.CallbackFacet: void callCallback(org.apache.isis.core.metamodel.spec.ManagedObject,java.lang.Class)>(v, class "Lorg/apache/isis/core/metamodel/facets/object/callbacks/PersistingCallbackFacet;");
virtualinvoke v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: void postLifecycleEventIfRequired(org.apache.isis.core.metamodel.spec.ManagedObject,java.lang.Class)>(v, class "Lorg/apache/isis/core/metamodel/facets/object/callbacks/PersistingLifecycleEventFacet;");
return;
}
public void recognizeUpdating(org.apache.isis.core.metamodel.spec.ManagedObject)
{
org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo v;
javax.inject.Provider v;
org.apache.isis.core.metamodel.spec.ManagedObject v;
v := @this: org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo;
v := @parameter: org.apache.isis.core.metamodel.spec.ManagedObject;
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: javax.inject.Provider interactionProviderProvider>;
staticinvoke <org.apache.isis.persistence.jdo.integration.changetracking._Xray: void recognizeUpdating(org.apache.isis.core.metamodel.spec.ManagedObject,javax.inject.Provider)>(v, v);
staticinvoke <org.apache.isis.core.metamodel.facets.object.callbacks.CallbackFacet: void callCallback(org.apache.isis.core.metamodel.spec.ManagedObject,java.lang.Class)>(v, class "Lorg/apache/isis/core/metamodel/facets/object/callbacks/UpdatedCallbackFacet;");
virtualinvoke v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: void postLifecycleEventIfRequired(org.apache.isis.core.metamodel.spec.ManagedObject,java.lang.Class)>(v, class "Lorg/apache/isis/core/metamodel/facets/object/callbacks/UpdatedLifecycleEventFacet;");
return;
}
java.util.Map getChangeKindByEnlistedAdapter()
{
org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo v;
java.util.Map v;
v := @this: org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo;
v = v.<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: java.util.Map changeKindByEnlistedAdapter>;
return v;
}
static void <clinit>()
{
org.apache.logging.log4j.Logger v;
v = staticinvoke <org.apache.logging.log4j.LogManager: org.apache.logging.log4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/isis/persistence/jdo/integration/changetracking/EntityChangeTrackerJdo;");
<org.apache.isis.persistence.jdo.integration.changetracking.EntityChangeTrackerJdo: org.apache.logging.log4j.Logger log> = v;
return;
}
}