public class org.apache.nifi.processors.standard.enrichment.SqlJoinCache extends java.lang.Object implements java.lang.AutoCloseable
{
private final org.apache.nifi.logging.ComponentLog logger;
private final com.github.benmanes.caffeine.cache.Cache calciteParameterQueues;
public void <init>(org.apache.nifi.logging.ComponentLog)
{
com.github.benmanes.caffeine.cache.Caffeine v, v, v;
org.apache.nifi.processors.standard.enrichment.SqlJoinCache v;
com.github.benmanes.caffeine.cache.Cache v;
org.apache.nifi.logging.ComponentLog v;
com.github.benmanes.caffeine.cache.RemovalListener v;
v := @this: org.apache.nifi.processors.standard.enrichment.SqlJoinCache;
v := @parameter: org.apache.nifi.logging.ComponentLog;
specialinvoke v.<java.lang.Object: void <init>()>();
v = staticinvoke <com.github.benmanes.caffeine.cache.Caffeine: com.github.benmanes.caffeine.cache.Caffeine newBuilder()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Caffeine: com.github.benmanes.caffeine.cache.Caffeine maximumSize(long)>(25L);
v = staticinvoke <org.apache.nifi.processors.standard.enrichment.SqlJoinCache$onCacheEviction__303: com.github.benmanes.caffeine.cache.RemovalListener bootstrap$(org.apache.nifi.processors.standard.enrichment.SqlJoinCache)>(v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Caffeine: com.github.benmanes.caffeine.cache.Caffeine removalListener(com.github.benmanes.caffeine.cache.RemovalListener)>(v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Caffeine: com.github.benmanes.caffeine.cache.Cache build()>();
v.<org.apache.nifi.processors.standard.enrichment.SqlJoinCache: com.github.benmanes.caffeine.cache.Cache calciteParameterQueues> = v;
v.<org.apache.nifi.processors.standard.enrichment.SqlJoinCache: org.apache.nifi.logging.ComponentLog logger> = v;
return;
}
public org.apache.nifi.processors.standard.enrichment.SqlJoinCalciteParameters getCalciteParameters(java.lang.String, org.apache.nifi.processor.ProcessSession, org.apache.nifi.serialization.record.RecordSchema, org.apache.nifi.processors.standard.enrichment.RecordJoinInput, org.apache.nifi.processors.standard.enrichment.RecordJoinInput) throws java.sql.SQLException
{
org.apache.nifi.processors.standard.enrichment.SqlJoinCache v;
org.apache.nifi.processor.ProcessSession v;
com.github.benmanes.caffeine.cache.Cache v;
java.util.function.Function v;
org.apache.nifi.serialization.record.RecordSchema v;
org.apache.nifi.util.Tuple v;
org.apache.nifi.processors.standard.enrichment.RecordJoinInput v, v;
java.lang.Object v, v;
java.lang.String v;
org.apache.nifi.processors.standard.enrichment.SqlJoinCalciteParameters v;
v := @this: org.apache.nifi.processors.standard.enrichment.SqlJoinCache;
v := @parameter: java.lang.String;
v := @parameter: org.apache.nifi.processor.ProcessSession;
v := @parameter: org.apache.nifi.serialization.record.RecordSchema;
v := @parameter: org.apache.nifi.processors.standard.enrichment.RecordJoinInput;
v := @parameter: org.apache.nifi.processors.standard.enrichment.RecordJoinInput;
v = new org.apache.nifi.util.Tuple;
specialinvoke v.<org.apache.nifi.util.Tuple: void <init>(java.lang.Object,java.lang.Object)>(v, v);
v = v.<org.apache.nifi.processors.standard.enrichment.SqlJoinCache: com.github.benmanes.caffeine.cache.Cache calciteParameterQueues>;
v = staticinvoke <org.apache.nifi.processors.standard.enrichment.SqlJoinCache$lambda_getCalciteParameters_0__304: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.Cache: java.lang.Object get(java.lang.Object,java.util.function.Function)>(v, v);
v = interfaceinvoke v.<java.util.concurrent.BlockingQueue: java.lang.Object poll()>();
if v == null goto label;
return v;
label:
v = specialinvoke v.<org.apache.nifi.processors.standard.enrichment.SqlJoinCache: org.apache.nifi.processors.standard.enrichment.SqlJoinCalciteParameters createCalciteParameters(java.lang.String,org.apache.nifi.processor.ProcessSession,org.apache.nifi.processors.standard.enrichment.RecordJoinInput,org.apache.nifi.processors.standard.enrichment.RecordJoinInput,java.util.concurrent.BlockingQueue)>(v, v, v, v, v);
return v;
}
public void returnCalciteParameters(java.lang.String, org.apache.nifi.serialization.record.RecordSchema, org.apache.nifi.processors.standard.enrichment.SqlJoinCalciteParameters)
{
org.apache.nifi.processors.standard.enrichment.SqlJoinCache v;
com.github.benmanes.caffeine.cache.Cache v;
org.apache.nifi.serialization.record.RecordSchema v;
org.apache.nifi.util.Tuple v;
java.lang.Object v;
java.lang.String v;
org.apache.nifi.processors.standard.enrichment.SqlJoinCalciteParameters v;
boolean v;
v := @this: org.apache.nifi.processors.standard.enrichment.SqlJoinCache;
v := @parameter: java.lang.String;
v := @parameter: org.apache.nifi.serialization.record.RecordSchema;
v := @parameter: org.apache.nifi.processors.standard.enrichment.SqlJoinCalciteParameters;
v = new org.apache.nifi.util.Tuple;
specialinvoke v.<org.apache.nifi.util.Tuple: void <init>(java.lang.Object,java.lang.Object)>(v, v);
v = v.<org.apache.nifi.processors.standard.enrichment.SqlJoinCache: com.github.benmanes.caffeine.cache.Cache calciteParameterQueues>;
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.Cache: java.lang.Object getIfPresent(java.lang.Object)>(v);
if v == null goto label;
v = interfaceinvoke v.<java.util.concurrent.BlockingQueue: boolean offer(java.lang.Object)>(v);
if v != 0 goto label;
label:
virtualinvoke v.<org.apache.nifi.processors.standard.enrichment.SqlJoinCalciteParameters: void close()>();
label:
return;
}
private org.apache.nifi.processors.standard.enrichment.SqlJoinCalciteParameters createCalciteParameters(java.lang.String, org.apache.nifi.processor.ProcessSession, org.apache.nifi.processors.standard.enrichment.RecordJoinInput, org.apache.nifi.processors.standard.enrichment.RecordJoinInput, java.util.concurrent.BlockingQueue) throws java.sql.SQLException
{
org.apache.nifi.processors.standard.enrichment.SqlJoinCache v;
org.apache.nifi.logging.ComponentLog v, v;
org.apache.nifi.serialization.record.RecordSchema v, v;
org.apache.calcite.jdbc.CalciteConnection v;
org.apache.nifi.processors.standard.enrichment.RecordJoinInput v, v;
java.lang.String v;
org.apache.calcite.schema.SchemaPlus v;
org.apache.nifi.flowfile.FlowFile v, v;
java.util.concurrent.BlockingQueue v;
org.apache.nifi.processor.ProcessSession v;
java.sql.PreparedStatement v;
org.apache.nifi.queryrecord.FlowFileTable v, v;
org.apache.nifi.serialization.RecordReaderFactory v, v;
org.apache.nifi.processors.standard.enrichment.SqlJoinCalciteParameters v;
v := @this: org.apache.nifi.processors.standard.enrichment.SqlJoinCache;
v := @parameter: java.lang.String;
v := @parameter: org.apache.nifi.processor.ProcessSession;
v := @parameter: org.apache.nifi.processors.standard.enrichment.RecordJoinInput;
v := @parameter: org.apache.nifi.processors.standard.enrichment.RecordJoinInput;
v := @parameter: java.util.concurrent.BlockingQueue;
v = specialinvoke v.<org.apache.nifi.processors.standard.enrichment.SqlJoinCache: org.apache.calcite.jdbc.CalciteConnection createCalciteConnection()>();
v = staticinvoke <org.apache.nifi.processors.standard.calcite.RecordPathFunctions: org.apache.calcite.schema.SchemaPlus createRootSchema(org.apache.calcite.jdbc.CalciteConnection)>(v);
v = new org.apache.nifi.queryrecord.FlowFileTable;
v = virtualinvoke v.<org.apache.nifi.processors.standard.enrichment.RecordJoinInput: org.apache.nifi.flowfile.FlowFile getFlowFile()>();
v = virtualinvoke v.<org.apache.nifi.processors.standard.enrichment.RecordJoinInput: org.apache.nifi.serialization.record.RecordSchema getRecordSchema()>();
v = virtualinvoke v.<org.apache.nifi.processors.standard.enrichment.RecordJoinInput: org.apache.nifi.serialization.RecordReaderFactory getRecordReaderFactory()>();
v = v.<org.apache.nifi.processors.standard.enrichment.SqlJoinCache: org.apache.nifi.logging.ComponentLog logger>;
specialinvoke v.<org.apache.nifi.queryrecord.FlowFileTable: void <init>(org.apache.nifi.processor.ProcessSession,org.apache.nifi.flowfile.FlowFile,org.apache.nifi.serialization.record.RecordSchema,org.apache.nifi.serialization.RecordReaderFactory,org.apache.nifi.logging.ComponentLog)>(v, v, v, v, v);
interfaceinvoke v.<org.apache.calcite.schema.SchemaPlus: void add(java.lang.String,org.apache.calcite.schema.Table)>("ORIGINAL", v);
v = new org.apache.nifi.queryrecord.FlowFileTable;
v = virtualinvoke v.<org.apache.nifi.processors.standard.enrichment.RecordJoinInput: org.apache.nifi.flowfile.FlowFile getFlowFile()>();
v = virtualinvoke v.<org.apache.nifi.processors.standard.enrichment.RecordJoinInput: org.apache.nifi.serialization.record.RecordSchema getRecordSchema()>();
v = virtualinvoke v.<org.apache.nifi.processors.standard.enrichment.RecordJoinInput: org.apache.nifi.serialization.RecordReaderFactory getRecordReaderFactory()>();
v = v.<org.apache.nifi.processors.standard.enrichment.SqlJoinCache: org.apache.nifi.logging.ComponentLog logger>;
specialinvoke v.<org.apache.nifi.queryrecord.FlowFileTable: void <init>(org.apache.nifi.processor.ProcessSession,org.apache.nifi.flowfile.FlowFile,org.apache.nifi.serialization.record.RecordSchema,org.apache.nifi.serialization.RecordReaderFactory,org.apache.nifi.logging.ComponentLog)>(v, v, v, v, v);
interfaceinvoke v.<org.apache.calcite.schema.SchemaPlus: void add(java.lang.String,org.apache.calcite.schema.Table)>("ENRICHMENT", v);
interfaceinvoke v.<org.apache.calcite.schema.SchemaPlus: void setCacheEnabled(boolean)>(0);
v = interfaceinvoke v.<org.apache.calcite.jdbc.CalciteConnection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = new org.apache.nifi.processors.standard.enrichment.SqlJoinCalciteParameters;
specialinvoke v.<org.apache.nifi.processors.standard.enrichment.SqlJoinCalciteParameters: void <init>(java.lang.String,org.apache.calcite.jdbc.CalciteConnection,java.sql.PreparedStatement,org.apache.nifi.queryrecord.FlowFileTable,org.apache.nifi.queryrecord.FlowFileTable)>(v, v, v, v, v);
return v;
}
private org.apache.calcite.jdbc.CalciteConnection createCalciteConnection()
{
java.sql.Connection v;
java.util.Properties v;
org.apache.nifi.processors.standard.enrichment.SqlJoinCache v;
java.lang.Exception v;
org.apache.nifi.processor.exception.ProcessException v;
org.apache.calcite.config.CalciteConnectionProperty v;
org.apache.calcite.config.Lex v;
java.lang.Object v;
java.lang.String v, v;
v := @this: org.apache.nifi.processors.standard.enrichment.SqlJoinCache;
v = new java.util.Properties;
specialinvoke v.<java.util.Properties: void <init>()>();
v = <org.apache.calcite.config.CalciteConnectionProperty: org.apache.calcite.config.CalciteConnectionProperty LEX>;
v = virtualinvoke v.<org.apache.calcite.config.CalciteConnectionProperty: java.lang.String camelName()>();
v = <org.apache.calcite.config.Lex: org.apache.calcite.config.Lex MYSQL_ANSI>;
v = virtualinvoke v.<org.apache.calcite.config.Lex: java.lang.String name()>();
virtualinvoke v.<java.util.Properties: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
v = staticinvoke <java.sql.DriverManager: java.sql.Connection getConnection(java.lang.String,java.util.Properties)>("jdbc:calcite:", v);
v = interfaceinvoke v.<java.sql.Connection: java.lang.Object unwrap(java.lang.Class)>(class "Lorg/apache/calcite/jdbc/CalciteConnection;");
label:
return v;
label:
v := @caughtexception;
v = new org.apache.nifi.processor.exception.ProcessException;
specialinvoke v.<org.apache.nifi.processor.exception.ProcessException: void <init>(java.lang.Throwable)>(v);
throw v;
catch java.lang.Exception from label to label with label;
}
public void onCacheEviction(org.apache.nifi.util.Tuple, java.util.concurrent.BlockingQueue, com.github.benmanes.caffeine.cache.RemovalCause)
{
org.apache.nifi.processors.standard.enrichment.SqlJoinCache v;
org.apache.nifi.util.Tuple v;
java.util.concurrent.BlockingQueue v;
com.github.benmanes.caffeine.cache.RemovalCause v;
v := @this: org.apache.nifi.processors.standard.enrichment.SqlJoinCache;
v := @parameter: org.apache.nifi.util.Tuple;
v := @parameter: java.util.concurrent.BlockingQueue;
v := @parameter: com.github.benmanes.caffeine.cache.RemovalCause;
specialinvoke v.<org.apache.nifi.processors.standard.enrichment.SqlJoinCache: void clearQueue(java.util.concurrent.BlockingQueue)>(v);
return;
}
private void clearQueue(java.util.concurrent.BlockingQueue)
{
java.lang.Object v;
java.util.concurrent.BlockingQueue v;
org.apache.nifi.processors.standard.enrichment.SqlJoinCache v;
v := @this: org.apache.nifi.processors.standard.enrichment.SqlJoinCache;
v := @parameter: java.util.concurrent.BlockingQueue;
label:
v = interfaceinvoke v.<java.util.concurrent.BlockingQueue: java.lang.Object poll()>();
if v == null goto label;
virtualinvoke v.<org.apache.nifi.processors.standard.enrichment.SqlJoinCalciteParameters: void close()>();
goto label;
label:
return;
}
public void close() throws java.lang.Exception
{
org.apache.nifi.processors.standard.enrichment.SqlJoinCache v;
java.util.Iterator v;
java.util.Collection v;
com.github.benmanes.caffeine.cache.Cache v, v;
java.util.concurrent.ConcurrentMap v;
java.lang.Object v;
boolean v;
v := @this: org.apache.nifi.processors.standard.enrichment.SqlJoinCache;
v = v.<org.apache.nifi.processors.standard.enrichment.SqlJoinCache: com.github.benmanes.caffeine.cache.Cache calciteParameterQueues>;
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.Cache: java.util.concurrent.ConcurrentMap asMap()>();
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: 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()>();
specialinvoke v.<org.apache.nifi.processors.standard.enrichment.SqlJoinCache: void clearQueue(java.util.concurrent.BlockingQueue)>(v);
goto label;
label:
v = v.<org.apache.nifi.processors.standard.enrichment.SqlJoinCache: com.github.benmanes.caffeine.cache.Cache calciteParameterQueues>;
interfaceinvoke v.<com.github.benmanes.caffeine.cache.Cache: void invalidateAll()>();
return;
}
}