public class org.apache.nifi.processors.standard.DetectDuplicate extends org.apache.nifi.processor.AbstractProcessor
{
public static final java.lang.String ORIGINAL_DESCRIPTION_ATTRIBUTE_NAME;
public static final org.apache.nifi.components.PropertyDescriptor DISTRIBUTED_CACHE_SERVICE;
public static final org.apache.nifi.components.PropertyDescriptor CACHE_ENTRY_IDENTIFIER;
public static final org.apache.nifi.components.PropertyDescriptor FLOWFILE_DESCRIPTION;
public static final org.apache.nifi.components.PropertyDescriptor AGE_OFF_DURATION;
public static final org.apache.nifi.components.PropertyDescriptor CACHE_IDENTIFIER;
public static final org.apache.nifi.processor.Relationship REL_DUPLICATE;
public static final org.apache.nifi.processor.Relationship REL_NON_DUPLICATE;
public static final org.apache.nifi.processor.Relationship REL_FAILURE;
private final java.util.Set relationships;
private final org.apache.nifi.distributed.cache.client.Serializer keySerializer;
private final org.apache.nifi.distributed.cache.client.Serializer valueSerializer;
private final org.apache.nifi.distributed.cache.client.Deserializer valueDeserializer;
public void <init>()
{
org.apache.nifi.processors.standard.DetectDuplicate$CacheValueDeserializer v;
java.util.Set v;
org.apache.nifi.processors.standard.DetectDuplicate v;
java.util.HashSet v;
org.apache.nifi.processor.Relationship v, v, v;
org.apache.nifi.processors.standard.DetectDuplicate$CacheValueSerializer v;
org.apache.nifi.processors.standard.DetectDuplicate$StringSerializer v;
v := @this: org.apache.nifi.processors.standard.DetectDuplicate;
specialinvoke v.<org.apache.nifi.processor.AbstractProcessor: void <init>()>();
v = new org.apache.nifi.processors.standard.DetectDuplicate$StringSerializer;
specialinvoke v.<org.apache.nifi.processors.standard.DetectDuplicate$StringSerializer: void <init>()>();
v.<org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.distributed.cache.client.Serializer keySerializer> = v;
v = new org.apache.nifi.processors.standard.DetectDuplicate$CacheValueSerializer;
specialinvoke v.<org.apache.nifi.processors.standard.DetectDuplicate$CacheValueSerializer: void <init>()>();
v.<org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.distributed.cache.client.Serializer valueSerializer> = v;
v = new org.apache.nifi.processors.standard.DetectDuplicate$CacheValueDeserializer;
specialinvoke v.<org.apache.nifi.processors.standard.DetectDuplicate$CacheValueDeserializer: void <init>()>();
v.<org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.distributed.cache.client.Deserializer valueDeserializer> = v;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = <org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.processor.Relationship REL_DUPLICATE>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.processor.Relationship REL_NON_DUPLICATE>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.processor.Relationship REL_FAILURE>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = staticinvoke <java.util.Collections: java.util.Set unmodifiableSet(java.util.Set)>(v);
v.<org.apache.nifi.processors.standard.DetectDuplicate: java.util.Set relationships> = v;
return;
}
protected java.util.List getSupportedPropertyDescriptors()
{
org.apache.nifi.components.PropertyDescriptor v, v, v, v, v;
java.util.ArrayList v;
org.apache.nifi.processors.standard.DetectDuplicate v;
v := @this: org.apache.nifi.processors.standard.DetectDuplicate;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = <org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.components.PropertyDescriptor CACHE_ENTRY_IDENTIFIER>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.components.PropertyDescriptor FLOWFILE_DESCRIPTION>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.components.PropertyDescriptor AGE_OFF_DURATION>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.components.PropertyDescriptor DISTRIBUTED_CACHE_SERVICE>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.components.PropertyDescriptor CACHE_IDENTIFIER>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
return v;
}
public java.util.Set getRelationships()
{
java.util.Set v;
org.apache.nifi.processors.standard.DetectDuplicate v;
v := @this: org.apache.nifi.processors.standard.DetectDuplicate;
v = v.<org.apache.nifi.processors.standard.DetectDuplicate: java.util.Set relationships>;
return v;
}
public void onTrigger(org.apache.nifi.processor.ProcessContext, org.apache.nifi.processor.ProcessSession) throws org.apache.nifi.processor.exception.ProcessException
{
org.apache.nifi.components.PropertyDescriptor v, v, v, v, v;
byte v;
java.lang.Long v;
org.apache.nifi.processors.standard.DetectDuplicate$CacheValue v;
org.apache.nifi.controller.ControllerService v;
java.lang.Object[] v, v, v, v, v;
long v, v, v, v;
org.apache.nifi.processors.standard.DetectDuplicate v;
org.apache.nifi.provenance.ProvenanceReporter v, v;
org.apache.nifi.processor.Relationship v, v, v, v, v, v;
java.lang.String v, v, v;
java.io.IOException v;
org.apache.nifi.processor.ProcessSession v;
org.apache.nifi.distributed.cache.client.Serializer v, v, v, v, v, v, v;
org.apache.nifi.components.PropertyValue v, v, v, v, v, v, v;
boolean v, v, v, v, v, v, v;
org.apache.nifi.flowfile.FlowFile v, v, v;
org.apache.nifi.logging.ComponentLog v;
java.lang.Boolean v, v;
org.apache.nifi.processor.ProcessContext v;
java.util.concurrent.TimeUnit v;
org.apache.nifi.distributed.cache.client.Deserializer v, v;
java.lang.Object v;
v := @this: org.apache.nifi.processors.standard.DetectDuplicate;
v := @parameter: org.apache.nifi.processor.ProcessContext;
v := @parameter: org.apache.nifi.processor.ProcessSession;
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessSession: org.apache.nifi.flowfile.FlowFile get()>();
if v != null goto label;
return;
label:
v = virtualinvoke v.<org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.logging.ComponentLog getLogger()>();
v = <org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.components.PropertyDescriptor CACHE_ENTRY_IDENTIFIER>;
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessContext: org.apache.nifi.components.PropertyValue getProperty(org.apache.nifi.components.PropertyDescriptor)>(v);
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: org.apache.nifi.components.PropertyValue evaluateAttributeExpressions(org.apache.nifi.flowfile.FlowFile)>(v);
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: java.lang.String getValue()>();
v = staticinvoke <org.apache.commons.lang.StringUtils: boolean isBlank(java.lang.CharSequence)>(v);
if v == 0 goto label;
v = newarray (java.lang.Object)[1];
v[0] = v;
interfaceinvoke v.<org.apache.nifi.logging.ComponentLog: void error(java.lang.String,java.lang.Object[])>("FlowFile {} has no attribute for given Cache Entry Identifier", v);
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessSession: org.apache.nifi.flowfile.FlowFile penalize(org.apache.nifi.flowfile.FlowFile)>(v);
v = <org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.processor.Relationship REL_FAILURE>;
interfaceinvoke v.<org.apache.nifi.processor.ProcessSession: void transfer(org.apache.nifi.flowfile.FlowFile,org.apache.nifi.processor.Relationship)>(v, v);
return;
label:
v = <org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.components.PropertyDescriptor DISTRIBUTED_CACHE_SERVICE>;
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessContext: org.apache.nifi.components.PropertyValue getProperty(org.apache.nifi.components.PropertyDescriptor)>(v);
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: org.apache.nifi.controller.ControllerService asControllerService(java.lang.Class)>(class "Lorg/apache/nifi/distributed/cache/client/DistributedMapCacheClient;");
v = <org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.components.PropertyDescriptor AGE_OFF_DURATION>;
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessContext: org.apache.nifi.components.PropertyValue getProperty(org.apache.nifi.components.PropertyDescriptor)>(v);
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: java.lang.Long asTimePeriod(java.util.concurrent.TimeUnit)>(v);
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
label:
v = <org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.components.PropertyDescriptor FLOWFILE_DESCRIPTION>;
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessContext: org.apache.nifi.components.PropertyValue getProperty(org.apache.nifi.components.PropertyDescriptor)>(v);
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: org.apache.nifi.components.PropertyValue evaluateAttributeExpressions(org.apache.nifi.flowfile.FlowFile)>(v);
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: java.lang.String getValue()>();
v = new org.apache.nifi.processors.standard.DetectDuplicate$CacheValue;
specialinvoke v.<org.apache.nifi.processors.standard.DetectDuplicate$CacheValue: void <init>(java.lang.String,long)>(v, v);
v = <org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.components.PropertyDescriptor CACHE_IDENTIFIER>;
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessContext: org.apache.nifi.components.PropertyValue getProperty(org.apache.nifi.components.PropertyDescriptor)>(v);
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: java.lang.Boolean asBoolean()>();
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
if v == 0 goto label;
v = v.<org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.distributed.cache.client.Serializer keySerializer>;
v = v.<org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.distributed.cache.client.Serializer valueSerializer>;
v = v.<org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.distributed.cache.client.Deserializer valueDeserializer>;
v = interfaceinvoke v.<org.apache.nifi.distributed.cache.client.DistributedMapCacheClient: java.lang.Object getAndPutIfAbsent(java.lang.Object,java.lang.Object,org.apache.nifi.distributed.cache.client.Serializer,org.apache.nifi.distributed.cache.client.Serializer,org.apache.nifi.distributed.cache.client.Deserializer)>(v, v, v, v, v);
goto label;
label:
v = v.<org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.distributed.cache.client.Serializer keySerializer>;
v = v.<org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.distributed.cache.client.Deserializer valueDeserializer>;
interfaceinvoke v.<org.apache.nifi.distributed.cache.client.DistributedMapCacheClient: java.lang.Object get(java.lang.Object,org.apache.nifi.distributed.cache.client.Serializer,org.apache.nifi.distributed.cache.client.Deserializer)>(v, v, v);
label:
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
if v == 0 goto label;
if v == null goto label;
v = virtualinvoke v.<org.apache.nifi.processors.standard.DetectDuplicate$CacheValue: long getEntryTimeMS()>();
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = v + v;
v = v cmp v;
if v < 0 goto label;
v = v.<org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.distributed.cache.client.Serializer keySerializer>;
v = interfaceinvoke v.<org.apache.nifi.distributed.cache.client.DistributedMapCacheClient: boolean remove(java.lang.Object,org.apache.nifi.distributed.cache.client.Serializer)>(v, v);
v = newarray (java.lang.Object)[2];
v[0] = v;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
v[1] = v;
interfaceinvoke v.<org.apache.nifi.logging.ComponentLog: void debug(java.lang.String,java.lang.Object[])>("Removal of expired cached entry with key {} returned {}", v);
if v == 0 goto label;
v = v.<org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.distributed.cache.client.Serializer keySerializer>;
v = v.<org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.distributed.cache.client.Serializer valueSerializer>;
v = interfaceinvoke v.<org.apache.nifi.distributed.cache.client.DistributedMapCacheClient: boolean putIfAbsent(java.lang.Object,java.lang.Object,org.apache.nifi.distributed.cache.client.Serializer,org.apache.nifi.distributed.cache.client.Serializer)>(v, v, v, v);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
goto label;
label:
v = v.<org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.distributed.cache.client.Serializer keySerializer>;
v = interfaceinvoke v.<org.apache.nifi.distributed.cache.client.DistributedMapCacheClient: boolean containsKey(java.lang.Object,org.apache.nifi.distributed.cache.client.Serializer)>(v, v);
label:
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessSession: org.apache.nifi.provenance.ProvenanceReporter getProvenanceReporter()>();
v = <org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.processor.Relationship REL_DUPLICATE>;
interfaceinvoke v.<org.apache.nifi.provenance.ProvenanceReporter: void route(org.apache.nifi.flowfile.FlowFile,org.apache.nifi.processor.Relationship,java.lang.String)>(v, v, "Duplicate of: original.flowfile.description");
v = virtualinvoke v.<org.apache.nifi.processors.standard.DetectDuplicate$CacheValue: java.lang.String getDescription()>();
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessSession: org.apache.nifi.flowfile.FlowFile putAttribute(org.apache.nifi.flowfile.FlowFile,java.lang.String,java.lang.String)>(v, "original.flowfile.description", v);
v = <org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.processor.Relationship REL_DUPLICATE>;
interfaceinvoke v.<org.apache.nifi.processor.ProcessSession: void transfer(org.apache.nifi.flowfile.FlowFile,org.apache.nifi.processor.Relationship)>(v, v);
v = newarray (java.lang.Object)[2];
v[0] = v;
v[1] = v;
interfaceinvoke v.<org.apache.nifi.logging.ComponentLog: void info(java.lang.String,java.lang.Object[])>("Found {} to be a duplicate of FlowFile with description {}", v);
interfaceinvoke v.<org.apache.nifi.processor.ProcessSession: void adjustCounter(java.lang.String,long,boolean)>("Duplicates Detected", 1L, 0);
goto label;
label:
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessSession: org.apache.nifi.provenance.ProvenanceReporter getProvenanceReporter()>();
v = <org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.processor.Relationship REL_NON_DUPLICATE>;
interfaceinvoke v.<org.apache.nifi.provenance.ProvenanceReporter: void route(org.apache.nifi.flowfile.FlowFile,org.apache.nifi.processor.Relationship)>(v, v);
v = <org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.processor.Relationship REL_NON_DUPLICATE>;
interfaceinvoke v.<org.apache.nifi.processor.ProcessSession: void transfer(org.apache.nifi.flowfile.FlowFile,org.apache.nifi.processor.Relationship)>(v, v);
v = newarray (java.lang.Object)[1];
v[0] = v;
interfaceinvoke v.<org.apache.nifi.logging.ComponentLog: void info(java.lang.String,java.lang.Object[])>("Could not find a duplicate entry in cache for {}; routing to non-duplicate", v);
interfaceinvoke v.<org.apache.nifi.processor.ProcessSession: void adjustCounter(java.lang.String,long,boolean)>("Non-Duplicate Files Processed", 1L, 0);
label:
goto label;
label:
v := @caughtexception;
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessSession: org.apache.nifi.flowfile.FlowFile penalize(org.apache.nifi.flowfile.FlowFile)>(v);
v = <org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.processor.Relationship REL_FAILURE>;
interfaceinvoke v.<org.apache.nifi.processor.ProcessSession: void transfer(org.apache.nifi.flowfile.FlowFile,org.apache.nifi.processor.Relationship)>(v, v);
v = newarray (java.lang.Object)[2];
v[0] = v;
v[1] = v;
interfaceinvoke v.<org.apache.nifi.logging.ComponentLog: void error(java.lang.String,java.lang.Object[])>("Unable to communicate with cache when processing {} due to {}", v);
label:
return;
catch java.io.IOException from label to label with label;
}
static void <clinit>()
{
org.apache.nifi.components.PropertyDescriptor v, v, v, v, v;
org.apache.nifi.components.PropertyDescriptor$Builder v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.nifi.expression.AttributeExpression$ResultType v, v;
org.apache.nifi.expression.ExpressionLanguageScope v, v;
java.lang.String[] v;
org.apache.nifi.processor.Relationship v, v, v;
org.apache.nifi.components.Validator v, v, v;
org.apache.nifi.processor.Relationship$Builder v, v, v, v, v, v, v, v, v;
v = new org.apache.nifi.components.PropertyDescriptor$Builder;
specialinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder name(java.lang.String)>("Distributed Cache Service");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("The Controller Service that is used to cache unique identifiers, used to determine duplicates");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder required(boolean)>(1);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder identifiesControllerService(java.lang.Class)>(class "Lorg/apache/nifi/distributed/cache/client/DistributedMapCacheClient;");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
<org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.components.PropertyDescriptor DISTRIBUTED_CACHE_SERVICE> = v;
v = new org.apache.nifi.components.PropertyDescriptor$Builder;
specialinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder name(java.lang.String)>("Cache Entry Identifier");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("A FlowFile attribute, or the results of an Attribute Expression Language statement, which will be evaluated against a FlowFile in order to determine the value used to identify duplicates; it is this value that is cached");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder required(boolean)>(1);
v = <org.apache.nifi.expression.AttributeExpression$ResultType: org.apache.nifi.expression.AttributeExpression$ResultType STRING>;
v = staticinvoke <org.apache.nifi.processor.util.StandardValidators: org.apache.nifi.components.Validator createAttributeExpressionLanguageValidator(org.apache.nifi.expression.AttributeExpression$ResultType,boolean)>(v, 1);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder addValidator(org.apache.nifi.components.Validator)>(v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder defaultValue(java.lang.String)>("${hash.value}");
v = <org.apache.nifi.expression.ExpressionLanguageScope: org.apache.nifi.expression.ExpressionLanguageScope FLOWFILE_ATTRIBUTES>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder expressionLanguageSupported(org.apache.nifi.expression.ExpressionLanguageScope)>(v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
<org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.components.PropertyDescriptor CACHE_ENTRY_IDENTIFIER> = v;
v = new org.apache.nifi.components.PropertyDescriptor$Builder;
specialinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder name(java.lang.String)>("FlowFile Description");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("When a FlowFile is added to the cache, this value is stored along with it so that if a duplicate is found, this description of the original FlowFile will be added to the duplicate\'s \"original.flowfile.description\" attribute");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder required(boolean)>(1);
v = <org.apache.nifi.expression.AttributeExpression$ResultType: org.apache.nifi.expression.AttributeExpression$ResultType STRING>;
v = staticinvoke <org.apache.nifi.processor.util.StandardValidators: org.apache.nifi.components.Validator createAttributeExpressionLanguageValidator(org.apache.nifi.expression.AttributeExpression$ResultType,boolean)>(v, 1);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder addValidator(org.apache.nifi.components.Validator)>(v);
v = <org.apache.nifi.expression.ExpressionLanguageScope: org.apache.nifi.expression.ExpressionLanguageScope FLOWFILE_ATTRIBUTES>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder expressionLanguageSupported(org.apache.nifi.expression.ExpressionLanguageScope)>(v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder defaultValue(java.lang.String)>("");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
<org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.components.PropertyDescriptor FLOWFILE_DESCRIPTION> = v;
v = new org.apache.nifi.components.PropertyDescriptor$Builder;
specialinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder name(java.lang.String)>("Age Off Duration");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("Time interval to age off cached FlowFiles");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder required(boolean)>(0);
v = <org.apache.nifi.processor.util.StandardValidators: org.apache.nifi.components.Validator TIME_PERIOD_VALIDATOR>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder addValidator(org.apache.nifi.components.Validator)>(v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
<org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.components.PropertyDescriptor AGE_OFF_DURATION> = v;
v = new org.apache.nifi.components.PropertyDescriptor$Builder;
specialinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder name(java.lang.String)>("Cache The Entry Identifier");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("When true this cause the processor to check for duplicates and cache the Entry Identifier. When false, the processor would only check for duplicates and not cache the Entry Identifier, requiring another processor to add identifiers to the distributed cache.");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder required(boolean)>(0);
v = newarray (java.lang.String)[2];
v[0] = "true";
v[1] = "false";
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder allowableValues(java.lang.String[])>(v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder defaultValue(java.lang.String)>("true");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
<org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.components.PropertyDescriptor CACHE_IDENTIFIER> = v;
v = new org.apache.nifi.processor.Relationship$Builder;
specialinvoke v.<org.apache.nifi.processor.Relationship$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.nifi.processor.Relationship$Builder: org.apache.nifi.processor.Relationship$Builder name(java.lang.String)>("duplicate");
v = virtualinvoke v.<org.apache.nifi.processor.Relationship$Builder: org.apache.nifi.processor.Relationship$Builder description(java.lang.String)>("If a FlowFile has been detected to be a duplicate, it will be routed to this relationship");
v = virtualinvoke v.<org.apache.nifi.processor.Relationship$Builder: org.apache.nifi.processor.Relationship build()>();
<org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.processor.Relationship REL_DUPLICATE> = v;
v = new org.apache.nifi.processor.Relationship$Builder;
specialinvoke v.<org.apache.nifi.processor.Relationship$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.nifi.processor.Relationship$Builder: org.apache.nifi.processor.Relationship$Builder name(java.lang.String)>("non-duplicate");
v = virtualinvoke v.<org.apache.nifi.processor.Relationship$Builder: org.apache.nifi.processor.Relationship$Builder description(java.lang.String)>("If a FlowFile\'s Cache Entry Identifier was not found in the cache, it will be routed to this relationship");
v = virtualinvoke v.<org.apache.nifi.processor.Relationship$Builder: org.apache.nifi.processor.Relationship build()>();
<org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.processor.Relationship REL_NON_DUPLICATE> = v;
v = new org.apache.nifi.processor.Relationship$Builder;
specialinvoke v.<org.apache.nifi.processor.Relationship$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.nifi.processor.Relationship$Builder: org.apache.nifi.processor.Relationship$Builder name(java.lang.String)>("failure");
v = virtualinvoke v.<org.apache.nifi.processor.Relationship$Builder: org.apache.nifi.processor.Relationship$Builder description(java.lang.String)>("If unable to communicate with the cache, the FlowFile will be penalized and routed to this relationship");
v = virtualinvoke v.<org.apache.nifi.processor.Relationship$Builder: org.apache.nifi.processor.Relationship build()>();
<org.apache.nifi.processors.standard.DetectDuplicate: org.apache.nifi.processor.Relationship REL_FAILURE> = v;
return;
}
}