public interface  org.finos.legend.engine.persistence.components.ingestmode.UnitemporalSnapshotAbstract extends java.lang.Object implements org.finos.legend.engine.persistence.components.ingestmode.IngestMode, org.finos.legend.engine.persistence.components.ingestmode.transactionmilestoning.TransactionMilestoned
{
public abstract java.lang.String digestField();
public abstract org.finos.legend.engine.persistence.components.ingestmode.transactionmilestoning.TransactionMilestoning transactionMilestoning();
public abstract java.util.List partitionFields();
public abstract java.util.List partitionSpecList();
public abstract java.util.Map partitionValuesByField();
public boolean partitioned()
{
java.util.List v;
org.finos.legend.engine.persistence.components.ingestmode.UnitemporalSnapshotAbstract v;
boolean v, v;
v := @this: org.finos.legend.engine.persistence.components.ingestmode.UnitemporalSnapshotAbstract;
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.UnitemporalSnapshotAbstract: java.util.List partitionFields()>();
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public org.finos.legend.engine.persistence.components.ingestmode.emptyhandling.EmptyDatasetHandling emptyDatasetHandling()
{
org.finos.legend.engine.persistence.components.ingestmode.emptyhandling.DeleteTargetData v;
org.finos.legend.engine.persistence.components.ingestmode.UnitemporalSnapshotAbstract v;
org.finos.legend.engine.persistence.components.ingestmode.emptyhandling.DeleteTargetData$Builder v;
v := @this: org.finos.legend.engine.persistence.components.ingestmode.UnitemporalSnapshotAbstract;
v = staticinvoke <org.finos.legend.engine.persistence.components.ingestmode.emptyhandling.DeleteTargetData: org.finos.legend.engine.persistence.components.ingestmode.emptyhandling.DeleteTargetData$Builder builder()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.emptyhandling.DeleteTargetData$Builder: org.finos.legend.engine.persistence.components.ingestmode.emptyhandling.DeleteTargetData build()>();
return v;
}
public java.lang.Object accept(org.finos.legend.engine.persistence.components.ingestmode.IngestModeVisitor)
{
org.finos.legend.engine.persistence.components.ingestmode.IngestModeVisitor v;
java.lang.Object v;
org.finos.legend.engine.persistence.components.ingestmode.UnitemporalSnapshotAbstract v;
v := @this: org.finos.legend.engine.persistence.components.ingestmode.UnitemporalSnapshotAbstract;
v := @parameter: org.finos.legend.engine.persistence.components.ingestmode.IngestModeVisitor;
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.IngestModeVisitor: java.lang.Object visitUnitemporalSnapshot(org.finos.legend.engine.persistence.components.ingestmode.UnitemporalSnapshotAbstract)>(v);
return v;
}
public void validate()
{
java.lang.IllegalStateException v, v, v, v, v, v;
org.finos.legend.engine.persistence.components.ingestmode.UnitemporalSnapshotAbstract v;
java.util.Map v, v, v, v, v;
boolean v, v, v, v, v, v, v, v, v, v, v;
java.util.Collection v;
org.finos.legend.engine.persistence.components.ingestmode.versioning.VersioningStrategy v;
java.util.Set v, v;
java.util.List v, v, v, v, v, v, v, v;
java.lang.Object[] v, v, v;
int v, v, v, v, v, v;
java.lang.String v, v, v;
org.finos.legend.engine.persistence.components.ingestmode.UnitemporalSnapshotAbstract$1 v;
java.util.Iterator v, v, v, v, v;
java.lang.Object v, v, v, v, v;
v := @this: org.finos.legend.engine.persistence.components.ingestmode.UnitemporalSnapshotAbstract;
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.UnitemporalSnapshotAbstract: java.util.Map partitionValuesByField()>();
v = interfaceinvoke v.<java.util.Map: boolean isEmpty()>();
if v != 0 goto label;
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.UnitemporalSnapshotAbstract: java.util.List partitionSpecList()>();
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Can not build UnitemporalSnapshot, Provide either partitionValuesByField or partitionSpecList, both not supported together");
throw v;
label:
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.UnitemporalSnapshotAbstract: java.util.Map partitionValuesByField()>();
v = interfaceinvoke v.<java.util.Map: boolean isEmpty()>();
if v != 0 goto label;
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.UnitemporalSnapshotAbstract: java.util.List partitionFields()>();
v = interfaceinvoke v.<java.util.List: int size()>();
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.UnitemporalSnapshotAbstract: java.util.Map partitionValuesByField()>();
v = interfaceinvoke v.<java.util.Map: int size()>();
if v == v goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Can not build UnitemporalSnapshot, size of partitionValuesByField must be same as partitionFields");
throw v;
label:
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.UnitemporalSnapshotAbstract: java.util.Map partitionValuesByField()>();
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.UnitemporalSnapshotAbstract: java.util.List partitionFields()>();
v = interfaceinvoke v.<java.util.List: boolean contains(java.lang.Object)>(v);
if v != 0 goto label;
v = new java.lang.IllegalStateException;
v = newarray (java.lang.Object)[1];
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Can not build UnitemporalSnapshot, partitionKey: [%s] not specified in partitionFields", v);
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v = 0;
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.UnitemporalSnapshotAbstract: java.util.Map partitionValuesByField()>();
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Set: int size()>();
if v <= 1 goto label;
v = v + 1;
goto label;
label:
if v <= 1 goto label;
v = new java.lang.IllegalStateException;
v = newarray (java.lang.Object)[0];
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Can not build UnitemporalSnapshot, in partitionValuesByField at most one of the partition keys can have more than one value, all other partition keys must have exactly one value", v);
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.UnitemporalSnapshotAbstract: java.util.List partitionSpecList()>();
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.UnitemporalSnapshotAbstract: java.util.List partitionSpecList()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.UnitemporalSnapshotAbstract: java.util.List partitionFields()>();
v = interfaceinvoke v.<java.util.List: int size()>();
v = interfaceinvoke v.<java.util.Map: int size()>();
if v == v goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Can not build UnitemporalSnapshot, size of each partitionSpec must be same as size of partitionFields");
throw v;
label:
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.UnitemporalSnapshotAbstract: java.util.List partitionSpecList()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.UnitemporalSnapshotAbstract: java.util.List partitionFields()>();
v = interfaceinvoke v.<java.util.List: boolean contains(java.lang.Object)>(v);
if v != 0 goto label;
v = new java.lang.IllegalStateException;
v = newarray (java.lang.Object)[1];
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Can not build UnitemporalSnapshot, partitionKey: [%s] not specified in partitionSpec", v);
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.UnitemporalSnapshotAbstract: org.finos.legend.engine.persistence.components.ingestmode.versioning.VersioningStrategy versioningStrategy()>();
v = new org.finos.legend.engine.persistence.components.ingestmode.UnitemporalSnapshotAbstract$1;
specialinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.UnitemporalSnapshotAbstract$1: void <init>(org.finos.legend.engine.persistence.components.ingestmode.UnitemporalSnapshotAbstract)>(v);
interfaceinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.versioning.VersioningStrategy: java.lang.Object accept(org.finos.legend.engine.persistence.components.ingestmode.versioning.VersioningStrategyVisitor)>(v);
return;
}
}