public class org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet extends org.apache.isis.core.metamodel.facetapi.FacetAbstract implements org.apache.isis.core.metamodel.facets.object.entity.EntityFacet
{
private static final org.apache.logging.log4j.Logger log;
private org.apache.isis.persistence.jdo.spring.integration.TransactionAwarePersistenceManagerFactoryProxy pmf;
private org.apache.isis.applib.services.xactn.TransactionService txService;
private org.apache.isis.core.metamodel.objectmanager.ObjectManager objectManager;
private org.apache.isis.applib.services.exceprecog.ExceptionRecognizerService exceptionRecognizerService;
private org.apache.isis.persistence.jdo.provider.entities.JdoFacetContext jdoFacetContext;
public void <init>(org.apache.isis.core.metamodel.facetapi.FacetHolder)
{
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet v;
org.apache.isis.core.metamodel.facetapi.FacetHolder v;
v := @this: org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet;
v := @parameter: org.apache.isis.core.metamodel.facetapi.FacetHolder;
specialinvoke v.<org.apache.isis.core.metamodel.facetapi.FacetAbstract: void <init>(java.lang.Class,org.apache.isis.core.metamodel.facetapi.FacetHolder)>(class "Lorg/apache/isis/core/metamodel/facets/object/entity/EntityFacet;", v);
return;
}
public org.apache.isis.core.metamodel.facets.object.entity.PersistenceStandard getPersistenceStandard()
{
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet v;
org.apache.isis.core.metamodel.facets.object.entity.PersistenceStandard v;
v := @this: org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet;
v = <org.apache.isis.core.metamodel.facets.object.entity.PersistenceStandard: org.apache.isis.core.metamodel.facets.object.entity.PersistenceStandard JDO>;
return v;
}
public java.lang.String identifierFor(org.apache.isis.core.metamodel.spec.ObjectSpecification, java.lang.Object)
{
java.lang.Object[] v, v, v, v;
javax.jdo.PersistenceManager v;
java.lang.Runnable v;
java.lang.String v, v, v, v, v;
boolean v, v, v;
org.apache.isis.core.metamodel.spec.ObjectSpecification v;
java.lang.IllegalArgumentException v, v, v, v;
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet v;
java.lang.Class v, v, v, v, v;
java.lang.Object v, v;
v := @this: org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet;
v := @parameter: org.apache.isis.core.metamodel.spec.ObjectSpecification;
v := @parameter: java.lang.Object;
if v != null goto label;
v = newarray (java.lang.Object)[1];
v = interfaceinvoke v.<org.apache.isis.core.metamodel.spec.ObjectSpecification: java.lang.Class getCorrespondingClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v[0] = v;
v = staticinvoke <org.apache.isis.commons.internal.exceptions._Exceptions: java.lang.IllegalArgumentException illegalArgument(java.lang.String,java.lang.Object[])>("The persistence layer cannot identify a pojo that is null (given type %s)", v);
throw v;
label:
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: boolean isPersistableType(java.lang.Class)>(v);
if v != 0 goto label;
v = newarray (java.lang.Object)[1];
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v[0] = v;
v = staticinvoke <org.apache.isis.commons.internal.exceptions._Exceptions: java.lang.IllegalArgumentException illegalArgument(java.lang.String,java.lang.Object[])>("The persistence layer does not recognize given type %s", v);
throw v;
label:
v = specialinvoke v.<org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: javax.jdo.PersistenceManager getPersistenceManager()>();
v = interfaceinvoke v.<javax.jdo.PersistenceManager: java.lang.Object getObjectId(java.lang.Object)>(v);
if v != null goto label;
v = staticinvoke <org.apache.isis.commons.internal.debug.xray.XrayUi: boolean isXrayEnabled()>();
v = staticinvoke <org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet$lambda_identifierFor_0__30: java.lang.Runnable bootstrap$(java.lang.Object)>(v);
staticinvoke <org.apache.isis.commons.internal.debug._Debug: void onCondition(boolean,java.lang.Runnable)>(v, v);
v = newarray (java.lang.Object)[1];
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v[0] = v;
v = staticinvoke <org.apache.isis.commons.internal.exceptions._Exceptions: java.lang.IllegalArgumentException illegalArgument(java.lang.String,java.lang.Object[])>("The persistence layer does not recognize given object of type %s, meaning the object has no identifier that associates it with the persistence layer. (most likely, because the object is detached, eg. was not persisted after being new-ed up)", v);
throw v;
label:
v = staticinvoke <org.apache.isis.persistence.jdo.datanucleus.oid.JdoObjectIdSerializer: java.lang.String toOidIdentifier(java.lang.Object)>(v);
v = staticinvoke <org.apache.isis.commons.internal.base._Strings: boolean isEmpty(java.lang.CharSequence)>(v);
if v == 0 goto label;
v = newarray (java.lang.Object)[1];
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v[0] = v;
v = staticinvoke <org.apache.isis.commons.internal.exceptions._Exceptions: java.lang.IllegalArgumentException illegalArgument(java.lang.String,java.lang.Object[])>("JdoObjectIdSerializer failed to convert primary key %s to a String.", v);
throw v;
label:
return v;
}
public org.apache.isis.core.metamodel.spec.ManagedObject fetchByIdentifier(org.apache.isis.core.metamodel.spec.ObjectSpecification, org.apache.isis.applib.services.bookmark.Bookmark)
{
org.apache.isis.core.metamodel.specloader.SpecificationLoader v;
javax.jdo.PersistenceManager v;
org.apache.isis.applib.services.inject.ServiceInjector v;
java.lang.NullPointerException v, v;
javax.jdo.FetchPlan v;
java.lang.String v, v;
boolean v, v;
org.apache.isis.applib.services.exceprecog.ExceptionRecognizerService v;
org.apache.isis.applib.services.exceprecog.Category v, v;
org.apache.isis.core.metamodel.spec.ManagedObject v;
org.apache.isis.applib.services.bookmark.Bookmark v;
org.apache.isis.core.metamodel.spec.ObjectSpecification v, v;
java.lang.RuntimeException v;
org.apache.isis.applib.exceptions.unrecoverable.ObjectNotFoundException v, v;
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet v;
org.apache.logging.log4j.Logger v;
java.util.Optional v;
java.lang.Class v, v;
java.lang.Object v, v, v;
v := @this: org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet;
v := @parameter: org.apache.isis.core.metamodel.spec.ObjectSpecification;
v := @parameter: org.apache.isis.applib.services.bookmark.Bookmark;
if v != null goto label;
v = new java.lang.NullPointerException;
specialinvoke v.<java.lang.NullPointerException: void <init>(java.lang.String)>("entitySpec 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)>("bookmark is marked non-null but is null");
throw v;
label:
v = interfaceinvoke v.<org.apache.isis.core.metamodel.spec.ObjectSpecification: boolean isEntity()>();
staticinvoke <org.apache.isis.commons.internal.assertions._Assert: void assertTrue(boolean)>(v);
v = <org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: org.apache.logging.log4j.Logger log>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void debug(java.lang.String,java.lang.Object)>("fetchEntity; bookmark={}", v);
label:
v = staticinvoke <org.apache.isis.persistence.jdo.datanucleus.oid.JdoObjectIdSerializer: java.lang.Object toJdoObjectId(org.apache.isis.core.metamodel.spec.ObjectSpecification,org.apache.isis.applib.services.bookmark.Oid)>(v, v);
v = specialinvoke v.<org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: javax.jdo.PersistenceManager getPersistenceManager()>();
v = interfaceinvoke v.<org.apache.isis.core.metamodel.spec.ObjectSpecification: java.lang.Class getCorrespondingClass()>();
v = interfaceinvoke v.<javax.jdo.PersistenceManager: javax.jdo.FetchPlan getFetchPlan()>();
interfaceinvoke v.<javax.jdo.FetchPlan: javax.jdo.FetchPlan addGroup(java.lang.String)>("default");
v = interfaceinvoke v.<javax.jdo.PersistenceManager: java.lang.Object getObjectById(java.lang.Class,java.lang.Object)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: org.apache.isis.applib.services.exceprecog.ExceptionRecognizerService exceptionRecognizerService>;
v = interfaceinvoke v.<org.apache.isis.applib.services.exceprecog.ExceptionRecognizerService: java.util.Optional recognize(java.lang.Throwable)>(v);
v = virtualinvoke v.<java.util.Optional: boolean isPresent()>();
if v == 0 goto label;
v = virtualinvoke v.<java.util.Optional: java.lang.Object get()>();
v = virtualinvoke v.<org.apache.isis.applib.services.exceprecog.Recognition: org.apache.isis.applib.services.exceprecog.Category getCategory()>();
v = <org.apache.isis.applib.services.exceprecog.Category: org.apache.isis.applib.services.exceprecog.Category NOT_FOUND>;
if v != v goto label;
v = new org.apache.isis.applib.exceptions.unrecoverable.ObjectNotFoundException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.isis.applib.services.bookmark.Bookmark)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001");
specialinvoke v.<org.apache.isis.applib.exceptions.unrecoverable.ObjectNotFoundException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
throw v;
label:
if v != null goto label;
v = new org.apache.isis.applib.exceptions.unrecoverable.ObjectNotFoundException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.isis.applib.services.bookmark.Bookmark)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001");
specialinvoke v.<org.apache.isis.applib.exceptions.unrecoverable.ObjectNotFoundException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: org.apache.isis.core.metamodel.specloader.SpecificationLoader getSpecificationLoader()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = interfaceinvoke v.<org.apache.isis.core.metamodel.specloader.SpecificationLoader: org.apache.isis.core.metamodel.spec.ObjectSpecification specForTypeElseFail(java.lang.Class)>(v);
v = virtualinvoke v.<org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: org.apache.isis.applib.services.inject.ServiceInjector getServiceInjector()>();
interfaceinvoke v.<org.apache.isis.applib.services.inject.ServiceInjector: java.lang.Object injectServicesInto(java.lang.Object)>(v);
v = staticinvoke <org.apache.isis.core.metamodel.spec.ManagedObject: org.apache.isis.core.metamodel.spec.ManagedObject bookmarked(org.apache.isis.core.metamodel.spec.ObjectSpecification,java.lang.Object,org.apache.isis.applib.services.bookmark.Bookmark)>(v, v, v);
return v;
catch java.lang.RuntimeException from label to label with label;
}
public org.apache.isis.commons.collections.Can fetchByQuery(org.apache.isis.core.metamodel.spec.ObjectSpecification, org.apache.isis.applib.query.Query)
{
java.lang.IllegalStateException v;
org.apache.isis.commons.collections.Can v, v;
byte v, v;
java.util.Map v, v;
boolean v, v, v, v, v, v, v, v, v, v;
java.util.Collection v;
org.apache.isis.core.metamodel.spec.ObjectSpecification v;
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet v;
org.apache.logging.log4j.Logger v, v;
javax.jdo.JDOQLTypedQuery v;
org.apache.isis.applib.query.Query v;
java.lang.Object[] v;
javax.jdo.PersistenceManager v, v;
java.util.HashMap v;
long v, v, v, v, v, v;
org.apache.isis.applib.services.inject.ServiceInjector v;
java.util.function.Supplier v, v;
int v, v;
java.util.function.BiConsumer v;
java.lang.String v, v, v;
javax.jdo.Query v, v;
java.lang.UnsupportedOperationException v;
java.util.function.Consumer v;
org.apache.isis.applib.query.QueryRange v;
java.lang.Class v, v, v;
v := @this: org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet;
v := @parameter: org.apache.isis.core.metamodel.spec.ObjectSpecification;
v := @parameter: org.apache.isis.applib.query.Query;
v = interfaceinvoke v.<org.apache.isis.core.metamodel.spec.ObjectSpecification: boolean isEntity()>();
if v != 0 goto label;
v = staticinvoke <org.apache.isis.commons.internal.exceptions._Exceptions: java.lang.IllegalStateException unexpectedCodeReach()>();
throw v;
label:
v = <org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: org.apache.logging.log4j.Logger log>;
v = interfaceinvoke v.<org.apache.logging.log4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: org.apache.logging.log4j.Logger log>;
v = interfaceinvoke v.<org.apache.isis.applib.query.Query: java.lang.String getDescription()>();
interfaceinvoke v.<org.apache.logging.log4j.Logger: void debug(java.lang.String,java.lang.Object)>("about to execute Query: {}", v);
label:
v = interfaceinvoke v.<org.apache.isis.applib.query.Query: org.apache.isis.applib.query.QueryRange getRange()>();
v = v instanceof org.apache.isis.applib.query.AllInstancesQuery;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.isis.applib.query.AllInstancesQuery: java.lang.Class getResultType()>();
v = specialinvoke v.<org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: javax.jdo.PersistenceManager getPersistenceManager()>();
v = interfaceinvoke v.<javax.jdo.PersistenceManager: javax.jdo.JDOQLTypedQuery newJDOQLTypedQuery(java.lang.Class)>(v);
interfaceinvoke v.<javax.jdo.JDOQLTypedQuery: javax.jdo.JDOQLTypedQuery extension(java.lang.String,java.lang.Object)>("datanucleus.rdbms.query.multivaluedFetch", "none");
v = interfaceinvoke v.<org.apache.isis.applib.query.QueryRange: boolean isUnconstrained()>();
if v != 0 goto label;
v = interfaceinvoke v.<org.apache.isis.applib.query.QueryRange: long getStart()>();
v = interfaceinvoke v.<org.apache.isis.applib.query.QueryRange: long getEnd()>();
interfaceinvoke v.<javax.jdo.JDOQLTypedQuery: javax.jdo.JDOQLTypedQuery range(long,long)>(v, v);
label:
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet$executeList__34: java.util.function.Supplier bootstrap$(javax.jdo.JDOQLTypedQuery)>(v);
v = specialinvoke v.<org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: org.apache.isis.commons.collections.Can fetchWithinTransaction(java.util.function.Supplier)>(v);
v = interfaceinvoke v.<org.apache.isis.applib.query.QueryRange: boolean hasLimit()>();
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.isis.commons.collections.Can: int size()>();
v = interfaceinvoke v.<org.apache.isis.applib.query.QueryRange: long getLimit()>();
v = v cmp v;
if v > 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <org.apache.isis.commons.internal.assertions._Assert: void assertTrue(boolean)>(v);
label:
return v;
label:
v = v instanceof org.apache.isis.applib.query.NamedQuery;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.isis.applib.query.NamedQuery: java.lang.Class getResultType()>();
v = specialinvoke v.<org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: javax.jdo.PersistenceManager getPersistenceManager()>();
v = staticinvoke <org.apache.isis.commons.internal.collections._Maps: java.util.HashMap newHashMap()>();
v = interfaceinvoke v.<org.apache.isis.applib.query.NamedQuery: java.lang.String getName()>();
v = interfaceinvoke v.<javax.jdo.PersistenceManager: javax.jdo.Query newNamedQuery(java.lang.Class,java.lang.String)>(v, v);
v = interfaceinvoke v.<javax.jdo.Query: javax.jdo.Query setNamedParameters(java.util.Map)>(v);
interfaceinvoke v.<javax.jdo.Query: javax.jdo.Query extension(java.lang.String,java.lang.Object)>("datanucleus.rdbms.query.multivaluedFetch", "none");
v = interfaceinvoke v.<org.apache.isis.applib.query.QueryRange: boolean isUnconstrained()>();
if v != 0 goto label;
v = interfaceinvoke v.<org.apache.isis.applib.query.QueryRange: long getStart()>();
v = interfaceinvoke v.<org.apache.isis.applib.query.QueryRange: long getEnd()>();
interfaceinvoke v.<javax.jdo.Query: javax.jdo.Query range(long,long)>(v, v);
label:
v = virtualinvoke v.<org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: org.apache.isis.applib.services.inject.ServiceInjector getServiceInjector()>();
v = interfaceinvoke v.<org.apache.isis.applib.query.NamedQuery: java.util.Map getParametersByName()>();
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet$injectServicesInto__31: java.util.function.Consumer bootstrap$(org.apache.isis.applib.services.inject.ServiceInjector)>(v);
interfaceinvoke v.<java.util.Collection: void forEach(java.util.function.Consumer)>(v);
v = interfaceinvoke v.<org.apache.isis.applib.query.NamedQuery: java.util.Map getParametersByName()>();
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet$put__32: java.util.function.BiConsumer bootstrap$(java.util.HashMap)>(v);
interfaceinvoke v.<java.util.Map: void forEach(java.util.function.BiConsumer)>(v);
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet$executeList__33: java.util.function.Supplier bootstrap$(javax.jdo.Query)>(v);
v = specialinvoke v.<org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: org.apache.isis.commons.collections.Can fetchWithinTransaction(java.util.function.Supplier)>(v);
v = interfaceinvoke v.<org.apache.isis.applib.query.QueryRange: boolean hasLimit()>();
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.isis.commons.collections.Can: int size()>();
v = interfaceinvoke v.<org.apache.isis.applib.query.QueryRange: long getLimit()>();
v = v cmp v;
if v > 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <org.apache.isis.commons.internal.assertions._Assert: void assertTrue(boolean)>(v);
label:
return v;
label:
v = newarray (java.lang.Object)[2];
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v[0] = v;
v = interfaceinvoke v.<org.apache.isis.applib.query.Query: java.lang.String getDescription()>();
v[1] = v;
v = staticinvoke <org.apache.isis.commons.internal.exceptions._Exceptions: java.lang.UnsupportedOperationException unsupportedOperation(java.lang.String,java.lang.Object[])>("query type %s (%s) not supported by this persistence implementation", v);
throw v;
}
public void persist(org.apache.isis.core.metamodel.spec.ObjectSpecification, java.lang.Object)
{
org.apache.isis.commons.functional.Result v;
javax.jdo.PersistenceManager v;
org.apache.isis.core.metamodel.spec.ObjectSpecification v;
org.apache.isis.applib.services.repository.EntityState v;
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet v;
org.apache.logging.log4j.Logger v;
java.lang.Class v;
java.lang.Object v;
org.apache.isis.commons.functional.ThrowingRunnable v;
boolean v, v;
org.apache.isis.applib.services.xactn.TransactionalProcessor v;
v := @this: org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet;
v := @parameter: org.apache.isis.core.metamodel.spec.ObjectSpecification;
v := @parameter: java.lang.Object;
if v == null goto label;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: boolean isPersistableType(java.lang.Class)>(v);
if v == 0 goto label;
v = staticinvoke <org.apache.isis.persistence.jdo.datanucleus.entities.DnEntityStateProvider: org.apache.isis.applib.services.repository.EntityState entityState(java.lang.Object)>(v);
v = virtualinvoke v.<org.apache.isis.applib.services.repository.EntityState: boolean isAttached()>();
if v == 0 goto label;
label:
return;
label:
v = specialinvoke v.<org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: javax.jdo.PersistenceManager getPersistenceManager()>();
v = <org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: org.apache.logging.log4j.Logger log>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void debug(java.lang.String,java.lang.Object)>("about to persist entity {}", v);
v = specialinvoke v.<org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: org.apache.isis.applib.services.xactn.TransactionalProcessor getTransactionalProcessor()>();
v = staticinvoke <org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet$lambda_persist_1__35: org.apache.isis.commons.functional.ThrowingRunnable bootstrap$(javax.jdo.PersistenceManager,java.lang.Object)>(v, v);
v = interfaceinvoke v.<org.apache.isis.applib.services.xactn.TransactionalProcessor: org.apache.isis.commons.functional.Result runWithinCurrentTransactionElseCreateNew(org.apache.isis.commons.functional.ThrowingRunnable)>(v);
virtualinvoke v.<org.apache.isis.commons.functional.Result: java.util.Optional optionalElseFail()>();
return;
}
public void delete(org.apache.isis.core.metamodel.spec.ObjectSpecification, java.lang.Object)
{
java.lang.Object[] v;
org.apache.isis.commons.functional.Result v;
javax.jdo.PersistenceManager v;
org.apache.isis.core.metamodel.spec.ObjectSpecification v;
java.lang.IllegalArgumentException v;
org.apache.isis.applib.services.repository.EntityState v;
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet v;
org.apache.logging.log4j.Logger v;
java.lang.Class v;
java.lang.Object v;
org.apache.isis.commons.functional.ThrowingRunnable v;
boolean v, v;
org.apache.isis.applib.services.xactn.TransactionalProcessor v;
v := @this: org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet;
v := @parameter: org.apache.isis.core.metamodel.spec.ObjectSpecification;
v := @parameter: java.lang.Object;
if v == null goto label;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: boolean isPersistableType(java.lang.Class)>(v);
if v != 0 goto label;
label:
return;
label:
v = staticinvoke <org.apache.isis.persistence.jdo.datanucleus.entities.DnEntityStateProvider: org.apache.isis.applib.services.repository.EntityState entityState(java.lang.Object)>(v);
v = virtualinvoke v.<org.apache.isis.applib.services.repository.EntityState: boolean isAttached()>();
if v != 0 goto label;
v = newarray (java.lang.Object)[0];
v = staticinvoke <org.apache.isis.commons.internal.exceptions._Exceptions: java.lang.IllegalArgumentException illegalArgument(java.lang.String,java.lang.Object[])>("can only delete an attached entity", v);
throw v;
label:
v = specialinvoke v.<org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: javax.jdo.PersistenceManager getPersistenceManager()>();
v = <org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: org.apache.logging.log4j.Logger log>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void debug(java.lang.String,java.lang.Object)>("about to delete entity {}", v);
v = specialinvoke v.<org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: org.apache.isis.applib.services.xactn.TransactionalProcessor getTransactionalProcessor()>();
v = staticinvoke <org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet$lambda_delete_2__36: org.apache.isis.commons.functional.ThrowingRunnable bootstrap$(javax.jdo.PersistenceManager,java.lang.Object)>(v, v);
v = interfaceinvoke v.<org.apache.isis.applib.services.xactn.TransactionalProcessor: org.apache.isis.commons.functional.Result runWithinCurrentTransactionElseCreateNew(org.apache.isis.commons.functional.ThrowingRunnable)>(v);
virtualinvoke v.<org.apache.isis.commons.functional.Result: java.util.Optional optionalElseFail()>();
return;
}
public void refresh(java.lang.Object)
{
org.apache.isis.commons.functional.Result v;
javax.jdo.PersistenceManager v;
org.apache.isis.applib.services.repository.EntityState v;
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet v;
org.apache.logging.log4j.Logger v;
java.lang.Class v;
java.lang.Object v;
org.apache.isis.commons.functional.ThrowingRunnable v;
boolean v, v;
org.apache.isis.applib.services.xactn.TransactionalProcessor v;
v := @this: org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet;
v := @parameter: java.lang.Object;
if v == null goto label;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: boolean isPersistableType(java.lang.Class)>(v);
if v == 0 goto label;
v = staticinvoke <org.apache.isis.persistence.jdo.datanucleus.entities.DnEntityStateProvider: org.apache.isis.applib.services.repository.EntityState entityState(java.lang.Object)>(v);
v = virtualinvoke v.<org.apache.isis.applib.services.repository.EntityState: boolean isPersistable()>();
if v != 0 goto label;
label:
return;
label:
v = specialinvoke v.<org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: javax.jdo.PersistenceManager getPersistenceManager()>();
v = <org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: org.apache.logging.log4j.Logger log>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void debug(java.lang.String,java.lang.Object)>("about to refresh entity {}", v);
v = specialinvoke v.<org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: org.apache.isis.applib.services.xactn.TransactionalProcessor getTransactionalProcessor()>();
v = staticinvoke <org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet$lambda_refresh_3__37: org.apache.isis.commons.functional.ThrowingRunnable bootstrap$(javax.jdo.PersistenceManager,java.lang.Object)>(v, v);
v = interfaceinvoke v.<org.apache.isis.applib.services.xactn.TransactionalProcessor: org.apache.isis.commons.functional.Result runWithinCurrentTransactionElseCreateNew(org.apache.isis.commons.functional.ThrowingRunnable)>(v);
virtualinvoke v.<org.apache.isis.commons.functional.Result: java.util.Optional optionalElseFail()>();
return;
}
public org.apache.isis.applib.services.repository.EntityState getEntityState(java.lang.Object)
{
org.apache.isis.applib.services.repository.EntityState v;
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet v;
java.lang.Object v;
v := @this: org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet;
v := @parameter: java.lang.Object;
v = staticinvoke <org.apache.isis.persistence.jdo.datanucleus.entities.DnEntityStateProvider: org.apache.isis.applib.services.repository.EntityState entityState(java.lang.Object)>(v);
return v;
}
public java.lang.Object detach(java.lang.Object)
{
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet v;
javax.jdo.PersistenceManager v;
java.lang.Object v, v;
v := @this: org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet;
v := @parameter: java.lang.Object;
v = specialinvoke v.<org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: javax.jdo.PersistenceManager getPersistenceManager()>();
v = interfaceinvoke v.<javax.jdo.PersistenceManager: java.lang.Object detachCopy(java.lang.Object)>(v);
return v;
}
private static boolean isPersistableType(java.lang.Class)
{
java.lang.Class v, v;
boolean v;
v := @parameter: java.lang.Class;
v = class "Lorg/datanucleus/enhancement/Persistable;";
v = virtualinvoke v.<java.lang.Class: boolean isAssignableFrom(java.lang.Class)>(v);
return v;
}
public boolean isProxyEnhancement(java.lang.reflect.Method)
{
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet v;
org.apache.isis.persistence.jdo.provider.entities.JdoFacetContext v;
java.lang.reflect.Method v;
boolean v;
v := @this: org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet;
v := @parameter: java.lang.reflect.Method;
v = v.<org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: org.apache.isis.persistence.jdo.provider.entities.JdoFacetContext jdoFacetContext>;
v = interfaceinvoke v.<org.apache.isis.persistence.jdo.provider.entities.JdoFacetContext: boolean isMethodProvidedByEnhancement(java.lang.reflect.Method)>(v);
return v;
}
private javax.jdo.PersistenceManager getPersistenceManager()
{
javax.jdo.PersistenceManagerFactory v;
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet v;
javax.jdo.PersistenceManager v;
org.apache.isis.persistence.jdo.spring.integration.TransactionAwarePersistenceManagerFactoryProxy v, v;
org.apache.isis.applib.services.inject.ServiceInjector v;
org.apache.isis.core.metamodel.facetapi.FacetHolder v;
v := @this: org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet;
v = v.<org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: org.apache.isis.persistence.jdo.spring.integration.TransactionAwarePersistenceManagerFactoryProxy pmf>;
if v != null goto label;
v = virtualinvoke v.<org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: org.apache.isis.core.metamodel.facetapi.FacetHolder getFacetHolder()>();
v = interfaceinvoke v.<org.apache.isis.core.metamodel.facetapi.FacetHolder: org.apache.isis.applib.services.inject.ServiceInjector getServiceInjector()>();
interfaceinvoke v.<org.apache.isis.applib.services.inject.ServiceInjector: java.lang.Object injectServicesInto(java.lang.Object)>(v);
label:
v = v.<org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: org.apache.isis.persistence.jdo.spring.integration.TransactionAwarePersistenceManagerFactoryProxy pmf>;
v = virtualinvoke v.<org.apache.isis.persistence.jdo.spring.integration.TransactionAwarePersistenceManagerFactoryProxy: javax.jdo.PersistenceManagerFactory getPersistenceManagerFactory()>();
v = interfaceinvoke v.<javax.jdo.PersistenceManagerFactory: javax.jdo.PersistenceManager getPersistenceManager()>();
return v;
}
private org.apache.isis.applib.services.xactn.TransactionalProcessor getTransactionalProcessor()
{
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet v;
org.apache.isis.applib.services.xactn.TransactionService v, v;
org.apache.isis.applib.services.inject.ServiceInjector v;
org.apache.isis.core.metamodel.facetapi.FacetHolder v;
v := @this: org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet;
v = v.<org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: org.apache.isis.applib.services.xactn.TransactionService txService>;
if v != null goto label;
v = virtualinvoke v.<org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: org.apache.isis.core.metamodel.facetapi.FacetHolder getFacetHolder()>();
v = interfaceinvoke v.<org.apache.isis.core.metamodel.facetapi.FacetHolder: org.apache.isis.applib.services.inject.ServiceInjector getServiceInjector()>();
interfaceinvoke v.<org.apache.isis.applib.services.inject.ServiceInjector: java.lang.Object injectServicesInto(java.lang.Object)>(v);
label:
v = v.<org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: org.apache.isis.applib.services.xactn.TransactionService txService>;
return v;
}
private org.apache.isis.commons.collections.Can fetchWithinTransaction(java.util.function.Supplier)
{
org.apache.isis.commons.functional.Result v;
java.util.concurrent.Callable v;
java.util.function.Supplier v;
org.apache.isis.applib.services.registry.ServiceRegistry v;
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet v;
java.lang.Object v, v;
org.apache.isis.applib.services.xactn.TransactionalProcessor v;
org.apache.isis.core.metamodel.facetapi.FacetHolder v;
v := @this: org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet;
v := @parameter: java.util.function.Supplier;
v = virtualinvoke v.<org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: org.apache.isis.core.metamodel.facetapi.FacetHolder getFacetHolder()>();
v = interfaceinvoke v.<org.apache.isis.core.metamodel.facetapi.FacetHolder: org.apache.isis.applib.services.registry.ServiceRegistry getServiceRegistry()>();
v = interfaceinvoke v.<org.apache.isis.applib.services.registry.ServiceRegistry: java.lang.Object lookupServiceElseFail(java.lang.Class)>(class "Lorg/apache/isis/core/transaction/changetracking/EntityChangeTracker;");
v = specialinvoke v.<org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: org.apache.isis.applib.services.xactn.TransactionalProcessor getTransactionalProcessor()>();
v = staticinvoke <org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet$lambda_fetchWithinTransaction_5__38: java.util.concurrent.Callable bootstrap$(org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet,java.util.function.Supplier,org.apache.isis.core.transaction.changetracking.EntityChangeTracker)>(v, v, v);
v = interfaceinvoke v.<org.apache.isis.applib.services.xactn.TransactionalProcessor: org.apache.isis.commons.functional.Result callWithinCurrentTransactionElseCreateNew(java.util.concurrent.Callable)>(v);
v = virtualinvoke v.<org.apache.isis.commons.functional.Result: java.lang.Object presentElseFail()>();
return v;
}
private org.apache.isis.core.metamodel.spec.ManagedObject adopt(org.apache.isis.core.transaction.changetracking.EntityChangeTracker, java.lang.Object)
{
org.apache.isis.core.transaction.changetracking.EntityChangeTracker v;
org.apache.isis.core.metamodel.spec.ManagedObject v, v;
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet v;
java.lang.Object v;
org.apache.isis.core.metamodel.objectmanager.ObjectManager v, v;
boolean v;
v := @this: org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet;
v := @parameter: org.apache.isis.core.transaction.changetracking.EntityChangeTracker;
v := @parameter: java.lang.Object;
v = v instanceof org.datanucleus.enhancement.Persistable;
if v == 0 goto label;
v = v.<org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: org.apache.isis.core.metamodel.objectmanager.ObjectManager objectManager>;
v = interfaceinvoke v.<org.apache.isis.core.metamodel.objectmanager.ObjectManager: org.apache.isis.core.metamodel.spec.ManagedObject adapt(java.lang.Object)>(v);
interfaceinvoke v.<org.apache.isis.core.transaction.changetracking.EntityChangeTracker: void recognizeLoaded(org.apache.isis.core.metamodel.spec.ManagedObject)>(v);
return v;
label:
v = v.<org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: org.apache.isis.core.metamodel.objectmanager.ObjectManager objectManager>;
v = interfaceinvoke v.<org.apache.isis.core.metamodel.objectmanager.ObjectManager: org.apache.isis.core.metamodel.spec.ManagedObject adapt(java.lang.Object)>(v);
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/datanucleus/metamodel/facets/entity/JdoEntityFacet;");
<org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.JdoEntityFacet: org.apache.logging.log4j.Logger log> = v;
return;
}
}