public class org.apache.nifi.processors.standard.ControlRate extends org.apache.nifi.processor.AbstractProcessor
{
public static final java.lang.String DATA_RATE;
public static final java.lang.String FLOWFILE_RATE;
public static final java.lang.String ATTRIBUTE_RATE;
public static final java.lang.String DATA_OR_FLOWFILE_RATE;
public static final org.apache.nifi.components.AllowableValue DATA_RATE_VALUE;
public static final org.apache.nifi.components.AllowableValue FLOWFILE_RATE_VALUE;
public static final org.apache.nifi.components.AllowableValue ATTRIBUTE_RATE_VALUE;
public static final org.apache.nifi.components.AllowableValue DATA_OR_FLOWFILE_RATE_VALUE;
public static final int MAX_FLOW_FILES_PER_BATCH;
private static final long DEFAULT_ACCRUAL_COUNT;
public static final org.apache.nifi.components.PropertyDescriptor RATE_CONTROL_CRITERIA;
public static final org.apache.nifi.components.PropertyDescriptor MAX_RATE;
public static final org.apache.nifi.components.PropertyDescriptor MAX_DATA_RATE;
public static final org.apache.nifi.components.PropertyDescriptor MAX_COUNT_RATE;
public static final org.apache.nifi.components.PropertyDescriptor RATE_CONTROL_ATTRIBUTE_NAME;
public static final org.apache.nifi.components.PropertyDescriptor TIME_PERIOD;
public static final org.apache.nifi.components.PropertyDescriptor GROUPING_ATTRIBUTE_NAME;
public static final org.apache.nifi.processor.Relationship REL_SUCCESS;
public static final org.apache.nifi.processor.Relationship REL_FAILURE;
private static final java.util.regex.Pattern POSITIVE_LONG_PATTERN;
private static final java.lang.String DEFAULT_GROUP_ATTRIBUTE;
private java.util.List properties;
private java.util.Set relationships;
private final java.util.concurrent.ConcurrentMap dataThrottleMap;
private final java.util.concurrent.ConcurrentMap countThrottleMap;
private final java.util.concurrent.atomic.AtomicLong lastThrottleClearTime;
private volatile java.lang.String rateControlCriteria;
private volatile java.lang.String rateControlAttribute;
private volatile java.lang.String maximumRateStr;
private volatile java.lang.String maximumCountRateStr;
private volatile java.lang.String groupingAttributeName;
private volatile int timePeriodSeconds;
public void <init>()
{
java.util.concurrent.atomic.AtomicLong v;
java.util.concurrent.ConcurrentHashMap v, v;
long v;
org.apache.nifi.processors.standard.ControlRate v;
v := @this: org.apache.nifi.processors.standard.ControlRate;
specialinvoke v.<org.apache.nifi.processor.AbstractProcessor: void <init>()>();
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.apache.nifi.processors.standard.ControlRate: java.util.concurrent.ConcurrentMap dataThrottleMap> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.apache.nifi.processors.standard.ControlRate: java.util.concurrent.ConcurrentMap countThrottleMap> = v;
v = new java.util.concurrent.atomic.AtomicLong;
v = virtualinvoke v.<org.apache.nifi.processors.standard.ControlRate: long getCurrentTimeMillis()>();
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>(long)>(v);
v.<org.apache.nifi.processors.standard.ControlRate: java.util.concurrent.atomic.AtomicLong lastThrottleClearTime> = v;
v.<org.apache.nifi.processors.standard.ControlRate: java.lang.String rateControlCriteria> = null;
v.<org.apache.nifi.processors.standard.ControlRate: java.lang.String rateControlAttribute> = null;
v.<org.apache.nifi.processors.standard.ControlRate: java.lang.String maximumRateStr> = null;
v.<org.apache.nifi.processors.standard.ControlRate: java.lang.String maximumCountRateStr> = null;
v.<org.apache.nifi.processors.standard.ControlRate: java.lang.String groupingAttributeName> = null;
v.<org.apache.nifi.processors.standard.ControlRate: int timePeriodSeconds> = 1;
return;
}
protected void init(org.apache.nifi.processor.ProcessorInitializationContext)
{
java.util.Set v;
org.apache.nifi.components.PropertyDescriptor v, v, v, v, v, v, v;
java.util.ArrayList v;
java.util.HashSet v;
java.util.List v;
org.apache.nifi.processor.Relationship v, v;
org.apache.nifi.processor.ProcessorInitializationContext v;
org.apache.nifi.processors.standard.ControlRate v;
v := @this: org.apache.nifi.processors.standard.ControlRate;
v := @parameter: org.apache.nifi.processor.ProcessorInitializationContext;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor RATE_CONTROL_CRITERIA>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor TIME_PERIOD>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor MAX_RATE>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor MAX_DATA_RATE>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor MAX_COUNT_RATE>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor RATE_CONTROL_ATTRIBUTE_NAME>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor GROUPING_ATTRIBUTE_NAME>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = staticinvoke <java.util.Collections: java.util.List unmodifiableList(java.util.List)>(v);
v.<org.apache.nifi.processors.standard.ControlRate: java.util.List properties> = v;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.processor.Relationship REL_SUCCESS>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.ControlRate: 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.ControlRate: java.util.Set relationships> = v;
return;
}
protected java.util.List getSupportedPropertyDescriptors()
{
java.util.List v;
org.apache.nifi.processors.standard.ControlRate v;
v := @this: org.apache.nifi.processors.standard.ControlRate;
v = v.<org.apache.nifi.processors.standard.ControlRate: java.util.List properties>;
return v;
}
public java.util.Set getRelationships()
{
java.util.Set v;
org.apache.nifi.processors.standard.ControlRate v;
v := @this: org.apache.nifi.processors.standard.ControlRate;
v = v.<org.apache.nifi.processors.standard.ControlRate: java.util.Set relationships>;
return v;
}
protected java.util.Collection customValidate(org.apache.nifi.components.ValidationContext)
{
org.apache.nifi.components.PropertyDescriptor v, v, v, v, v, v, v, v, v;
org.apache.nifi.components.PropertyValue v, v, v, v, v, v;
byte v;
boolean v, v, v, v;
org.apache.nifi.components.ValidationResult$Builder v, v, v;
java.util.Collection v;
org.apache.nifi.components.ValidationContext v;
java.util.ArrayList v;
int v;
java.lang.String v, v, v, v, v, v, v, v, v, v;
org.apache.nifi.components.ValidationResult v, v, v, v, v;
org.apache.nifi.components.Validator v, v, v, v;
org.apache.nifi.processors.standard.ControlRate v;
v := @this: org.apache.nifi.processors.standard.ControlRate;
v := @parameter: org.apache.nifi.components.ValidationContext;
v = new java.util.ArrayList;
v = specialinvoke v.<org.apache.nifi.processor.AbstractProcessor: java.util.Collection customValidate(org.apache.nifi.components.ValidationContext)>(v);
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor RATE_CONTROL_CRITERIA>;
v = interfaceinvoke v.<org.apache.nifi.components.ValidationContext: org.apache.nifi.components.PropertyValue getProperty(org.apache.nifi.components.PropertyDescriptor)>(v);
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: java.lang.String getValue()>();
v = virtualinvoke v.<java.lang.String: java.lang.String toLowerCase()>();
v = -1;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
lookupswitch(v)
{
case -421623914: goto label;
case -26487060: goto label;
case 1030106393: goto label;
case 1819536109: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("data rate or flowfile count");
if v == 0 goto label;
v = 0;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("data rate");
if v == 0 goto label;
v = 1;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("attribute value");
if v == 0 goto label;
v = 2;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("flowfile count");
if v == 0 goto label;
v = 3;
label:
tableswitch(v)
{
case 0: goto label;
case 1: goto label;
case 2: goto label;
case 3: goto label;
default: goto label;
};
label:
v = <org.apache.nifi.processor.util.StandardValidators: org.apache.nifi.components.Validator DATA_SIZE_VALIDATOR>;
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor MAX_DATA_RATE>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor: java.lang.String getDisplayName()>();
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor MAX_DATA_RATE>;
v = interfaceinvoke v.<org.apache.nifi.components.ValidationContext: org.apache.nifi.components.PropertyValue getProperty(org.apache.nifi.components.PropertyDescriptor)>(v);
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: java.lang.String getValue()>();
v = interfaceinvoke v.<org.apache.nifi.components.Validator: org.apache.nifi.components.ValidationResult validate(java.lang.String,java.lang.String,org.apache.nifi.components.ValidationContext)>(v, v, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processor.util.StandardValidators: org.apache.nifi.components.Validator POSITIVE_LONG_VALIDATOR>;
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor MAX_COUNT_RATE>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor: java.lang.String getDisplayName()>();
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor MAX_COUNT_RATE>;
v = interfaceinvoke v.<org.apache.nifi.components.ValidationContext: org.apache.nifi.components.PropertyValue getProperty(org.apache.nifi.components.PropertyDescriptor)>(v);
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: java.lang.String getValue()>();
v = interfaceinvoke v.<org.apache.nifi.components.Validator: org.apache.nifi.components.ValidationResult validate(java.lang.String,java.lang.String,org.apache.nifi.components.ValidationContext)>(v, v, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = <org.apache.nifi.processor.util.StandardValidators: org.apache.nifi.components.Validator DATA_SIZE_VALIDATOR>;
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor MAX_RATE>;
v = interfaceinvoke v.<org.apache.nifi.components.ValidationContext: org.apache.nifi.components.PropertyValue getProperty(org.apache.nifi.components.PropertyDescriptor)>(v);
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: java.lang.String getValue()>();
v = interfaceinvoke v.<org.apache.nifi.components.Validator: org.apache.nifi.components.ValidationResult validate(java.lang.String,java.lang.String,org.apache.nifi.components.ValidationContext)>("Maximum Rate", v, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor RATE_CONTROL_ATTRIBUTE_NAME>;
v = interfaceinvoke v.<org.apache.nifi.components.ValidationContext: org.apache.nifi.components.PropertyValue getProperty(org.apache.nifi.components.PropertyDescriptor)>(v);
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: java.lang.String getValue()>();
if v != null goto label;
v = new org.apache.nifi.components.ValidationResult$Builder;
specialinvoke v.<org.apache.nifi.components.ValidationResult$Builder: void <init>()>();
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor RATE_CONTROL_ATTRIBUTE_NAME>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor: java.lang.String getName()>();
v = virtualinvoke v.<org.apache.nifi.components.ValidationResult$Builder: org.apache.nifi.components.ValidationResult$Builder subject(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.nifi.components.ValidationResult$Builder: org.apache.nifi.components.ValidationResult$Builder explanation(java.lang.String)>("property must be set if using <Rate Control Criteria> of \'attribute value\'");
v = virtualinvoke v.<org.apache.nifi.components.ValidationResult$Builder: org.apache.nifi.components.ValidationResult build()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
v = <org.apache.nifi.processor.util.StandardValidators: org.apache.nifi.components.Validator POSITIVE_LONG_VALIDATOR>;
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor MAX_RATE>;
v = interfaceinvoke v.<org.apache.nifi.components.ValidationContext: org.apache.nifi.components.PropertyValue getProperty(org.apache.nifi.components.PropertyDescriptor)>(v);
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: java.lang.String getValue()>();
v = interfaceinvoke v.<org.apache.nifi.components.Validator: org.apache.nifi.components.ValidationResult validate(java.lang.String,java.lang.String,org.apache.nifi.components.ValidationContext)>("Maximum Rate", v, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
return v;
}
public void onPropertyModified(org.apache.nifi.components.PropertyDescriptor, java.lang.String, java.lang.String)
{
org.apache.nifi.components.PropertyDescriptor v, v, v, v, v, v, v, v;
java.util.regex.Matcher v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.Collection v, v, v;
java.util.regex.Pattern v;
org.apache.nifi.processor.DataUnit v;
java.lang.Double v;
long v, v;
java.util.concurrent.ConcurrentMap v, v, v, v, v;
java.lang.String v, v, v;
java.util.Iterator v, v, v;
java.lang.NumberFormatException v;
java.lang.Object v, v, v;
org.apache.nifi.processors.standard.ControlRate v;
v := @this: org.apache.nifi.processors.standard.ControlRate;
v := @parameter: org.apache.nifi.components.PropertyDescriptor;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
specialinvoke v.<org.apache.nifi.processor.AbstractProcessor: void onPropertyModified(org.apache.nifi.components.PropertyDescriptor,java.lang.String,java.lang.String)>(v, v, v);
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor RATE_CONTROL_CRITERIA>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor RATE_CONTROL_ATTRIBUTE_NAME>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor GROUPING_ATTRIBUTE_NAME>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor TIME_PERIOD>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = v.<org.apache.nifi.processors.standard.ControlRate: java.util.concurrent.ConcurrentMap dataThrottleMap>;
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: void clear()>();
v = v.<org.apache.nifi.processors.standard.ControlRate: java.util.concurrent.ConcurrentMap countThrottleMap>;
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: void clear()>();
goto label;
label:
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor MAX_RATE>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor MAX_DATA_RATE>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
if v == null goto label;
v = <org.apache.nifi.processor.DataUnit: java.util.regex.Pattern DATA_SIZE_PATTERN>;
v = virtualinvoke v.<java.lang.String: java.lang.String toUpperCase()>();
v = virtualinvoke v.<java.util.regex.Pattern: java.util.regex.Matcher matcher(java.lang.CharSequence)>(v);
v = virtualinvoke v.<java.util.regex.Matcher: boolean matches()>();
if v == 0 goto label;
v = <org.apache.nifi.processor.DataUnit: org.apache.nifi.processor.DataUnit B>;
v = staticinvoke <org.apache.nifi.processor.DataUnit: java.lang.Double parseDataSize(java.lang.String,org.apache.nifi.processor.DataUnit)>(v, v);
v = virtualinvoke v.<java.lang.Double: long longValue()>();
goto label;
label:
v = staticinvoke <java.lang.Long: long parseLong(java.lang.String)>(v);
label:
v = specialinvoke v.<org.apache.nifi.processors.standard.ControlRate: boolean dataThrottleRequired()>();
if v == 0 goto label;
v = v.<org.apache.nifi.processors.standard.ControlRate: java.util.concurrent.ConcurrentMap dataThrottleMap>;
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()>();
virtualinvoke v.<org.apache.nifi.processors.standard.ControlRate$Throttle: void setMaxRate(long)>(v);
goto label;
label:
v = specialinvoke v.<org.apache.nifi.processors.standard.ControlRate: boolean countThrottleRequired()>();
if v == 0 goto label;
v = v.<org.apache.nifi.processors.standard.ControlRate: java.util.concurrent.ConcurrentMap countThrottleMap>;
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()>();
virtualinvoke v.<org.apache.nifi.processors.standard.ControlRate$Throttle: void setMaxRate(long)>(v);
goto label;
label:
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor MAX_COUNT_RATE>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = staticinvoke <java.lang.Long: long parseLong(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = -1L;
label:
v = v.<org.apache.nifi.processors.standard.ControlRate: java.util.concurrent.ConcurrentMap countThrottleMap>;
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()>();
virtualinvoke v.<org.apache.nifi.processors.standard.ControlRate$Throttle: void setMaxRate(long)>(v);
goto label;
label:
return;
catch java.lang.NumberFormatException from label to label with label;
}
public void onScheduled(org.apache.nifi.processor.ProcessContext)
{
org.apache.nifi.components.PropertyDescriptor v, v, v, v, v, v, v, v;
org.apache.nifi.components.PropertyValue v, v, v, v, v, v, v, v;
java.lang.Long v;
boolean v, v, v, v;
int v;
java.lang.String v, v, v, v, v, v, v, v, v, v;
org.apache.nifi.processor.ProcessContext v;
java.util.concurrent.TimeUnit v;
org.apache.nifi.processors.standard.ControlRate v;
v := @this: org.apache.nifi.processors.standard.ControlRate;
v := @parameter: org.apache.nifi.processor.ProcessContext;
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor RATE_CONTROL_CRITERIA>;
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.String getValue()>();
v = virtualinvoke v.<java.lang.String: java.lang.String toLowerCase()>();
v.<org.apache.nifi.processors.standard.ControlRate: java.lang.String rateControlCriteria> = v;
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor RATE_CONTROL_ATTRIBUTE_NAME>;
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.String getValue()>();
v.<org.apache.nifi.processors.standard.ControlRate: java.lang.String rateControlAttribute> = v;
v = specialinvoke v.<org.apache.nifi.processors.standard.ControlRate: boolean dataThrottleRequired()>();
if v == 0 goto label;
v = v.<org.apache.nifi.processors.standard.ControlRate: java.lang.String rateControlCriteria>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("data rate or flowfile count");
if v == 0 goto label;
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor MAX_DATA_RATE>;
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.String getValue()>();
v = virtualinvoke v.<java.lang.String: java.lang.String toUpperCase()>();
goto label;
label:
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor MAX_RATE>;
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.String getValue()>();
v = virtualinvoke v.<java.lang.String: java.lang.String toUpperCase()>();
label:
v.<org.apache.nifi.processors.standard.ControlRate: java.lang.String maximumRateStr> = v;
label:
v = specialinvoke v.<org.apache.nifi.processors.standard.ControlRate: boolean countThrottleRequired()>();
if v == 0 goto label;
v = v.<org.apache.nifi.processors.standard.ControlRate: java.lang.String rateControlCriteria>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("data rate or flowfile count");
if v == 0 goto label;
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor MAX_COUNT_RATE>;
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.String getValue()>();
goto label;
label:
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor MAX_RATE>;
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.String getValue()>();
label:
v.<org.apache.nifi.processors.standard.ControlRate: java.lang.String maximumCountRateStr> = v;
label:
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor GROUPING_ATTRIBUTE_NAME>;
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.String getValue()>();
v.<org.apache.nifi.processors.standard.ControlRate: java.lang.String groupingAttributeName> = v;
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor TIME_PERIOD>;
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 SECONDS>;
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: java.lang.Long asTimePeriod(java.util.concurrent.TimeUnit)>(v);
v = virtualinvoke v.<java.lang.Long: int intValue()>();
v.<org.apache.nifi.processors.standard.ControlRate: int timePeriodSeconds> = v;
return;
}
public void onTrigger(org.apache.nifi.processor.ProcessContext, org.apache.nifi.processor.ProcessSession) throws org.apache.nifi.processor.exception.ProcessException
{
java.util.function.LongSupplier v;
org.apache.nifi.components.PropertyDescriptor v;
org.apache.nifi.components.PropertyValue v;
byte v, v;
java.lang.Long v;
boolean v, v, v, v, v, v, v, v;
java.util.Set v, v;
java.util.List v;
java.lang.Throwable v;
java.lang.Object[] v, v;
long v, v, v, v, v, v, v;
org.apache.nifi.logging.ComponentLog v;
java.util.concurrent.ConcurrentMap v, v;
java.util.HashSet v;
org.apache.nifi.processor.Relationship v, v;
java.util.Iterator v, v;
org.apache.nifi.processor.ProcessContext v;
org.apache.nifi.processor.ProcessSession v;
java.util.concurrent.TimeUnit v;
java.util.concurrent.atomic.AtomicLong v, v;
java.lang.Object v, v, v;
org.apache.nifi.processors.standard.ControlRate v;
org.apache.nifi.processors.standard.ControlRate$ThrottleFilter v;
v := @this: org.apache.nifi.processors.standard.ControlRate;
v := @parameter: org.apache.nifi.processor.ProcessContext;
v := @parameter: org.apache.nifi.processor.ProcessSession;
v = new org.apache.nifi.processors.standard.ControlRate$ThrottleFilter;
v = staticinvoke <org.apache.nifi.processors.standard.ControlRate$getCurrentTimeMillis__29: java.util.function.LongSupplier bootstrap$(org.apache.nifi.processors.standard.ControlRate)>(v);
specialinvoke v.<org.apache.nifi.processors.standard.ControlRate$ThrottleFilter: void <init>(org.apache.nifi.processors.standard.ControlRate,int,java.util.function.LongSupplier)>(v, 1000, v);
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessSession: java.util.List get(org.apache.nifi.processor.FlowFileFilter)>(v);
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
interfaceinvoke v.<org.apache.nifi.processor.ProcessContext: void yield()>();
return;
label:
v = v.<org.apache.nifi.processors.standard.ControlRate: java.util.concurrent.atomic.AtomicLong lastThrottleClearTime>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long get()>();
v = virtualinvoke v.<org.apache.nifi.processors.standard.ControlRate: long getCurrentTimeMillis()>();
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor TIME_PERIOD>;
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 = virtualinvoke v.<java.lang.Long: long longValue()>();
v = 2L * v;
v = v - v;
v = v cmp v;
if v >= 0 goto label;
v = v.<org.apache.nifi.processors.standard.ControlRate: java.util.concurrent.atomic.AtomicLong lastThrottleClearTime>;
v = virtualinvoke v.<org.apache.nifi.processors.standard.ControlRate: long getCurrentTimeMillis()>();
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: boolean compareAndSet(long,long)>(v, v);
if v == 0 goto label;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = specialinvoke v.<org.apache.nifi.processors.standard.ControlRate: boolean dataThrottleRequired()>();
if v == 0 goto label;
v = v.<org.apache.nifi.processors.standard.ControlRate: java.util.concurrent.ConcurrentMap dataThrottleMap>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.util.Set entrySet()>();
interfaceinvoke v.<java.util.Set: boolean addAll(java.util.Collection)>(v);
label:
v = specialinvoke v.<org.apache.nifi.processors.standard.ControlRate: boolean countThrottleRequired()>();
if v == 0 goto label;
v = v.<org.apache.nifi.processors.standard.ControlRate: java.util.concurrent.ConcurrentMap countThrottleMap>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.util.Set entrySet()>();
interfaceinvoke v.<java.util.Set: boolean addAll(java.util.Collection)>(v);
label:
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.<java.util.Map$Entry: java.lang.Object getValue()>();
v = virtualinvoke v.<org.apache.nifi.processors.standard.ControlRate$Throttle: boolean tryLock()>();
if v == 0 goto label;
label:
v = virtualinvoke v.<org.apache.nifi.processors.standard.ControlRate$Throttle: long lastUpdateTime()>();
v = v cmp v;
if v >= 0 goto label;
interfaceinvoke v.<java.util.Iterator: void remove()>();
label:
virtualinvoke v.<org.apache.nifi.processors.standard.ControlRate$Throttle: void unlock()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.nifi.processors.standard.ControlRate$Throttle: void unlock()>();
throw v;
label:
v = virtualinvoke v.<org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.logging.ComponentLog getLogger()>();
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 = specialinvoke v.<org.apache.nifi.processors.standard.ControlRate: boolean isAccrualPossible(org.apache.nifi.flowfile.FlowFile)>(v);
if v == 0 goto label;
v = newarray (java.lang.Object)[1];
v[0] = v;
interfaceinvoke v.<org.apache.nifi.logging.ComponentLog: void info(java.lang.String,java.lang.Object[])>("transferring {} to \'success\'", v);
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.processor.Relationship REL_SUCCESS>;
interfaceinvoke v.<org.apache.nifi.processor.ProcessSession: void transfer(org.apache.nifi.flowfile.FlowFile,org.apache.nifi.processor.Relationship)>(v, v);
goto label;
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[])>("Routing {} to \'failure\' due to missing or invalid attribute", v);
v = <org.apache.nifi.processors.standard.ControlRate: 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);
goto label;
label:
return;
catch java.lang.Throwable from label to label with label;
}
protected long getCurrentTimeMillis()
{
long v;
org.apache.nifi.processors.standard.ControlRate v;
v := @this: org.apache.nifi.processors.standard.ControlRate;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
return v;
}
private boolean isAccrualPossible(org.apache.nifi.flowfile.FlowFile)
{
org.apache.nifi.flowfile.FlowFile v;
java.util.regex.Matcher v;
java.lang.String v, v, v;
java.util.regex.Pattern v;
org.apache.nifi.processors.standard.ControlRate v;
boolean v, v, v;
v := @this: org.apache.nifi.processors.standard.ControlRate;
v := @parameter: org.apache.nifi.flowfile.FlowFile;
v = v.<org.apache.nifi.processors.standard.ControlRate: java.lang.String rateControlCriteria>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("attribute value");
if v == 0 goto label;
v = v.<org.apache.nifi.processors.standard.ControlRate: java.lang.String rateControlAttribute>;
v = interfaceinvoke v.<org.apache.nifi.flowfile.FlowFile: java.lang.String getAttribute(java.lang.String)>(v);
if v == null goto label;
v = <org.apache.nifi.processors.standard.ControlRate: java.util.regex.Pattern POSITIVE_LONG_PATTERN>;
v = virtualinvoke v.<java.util.regex.Pattern: java.util.regex.Matcher matcher(java.lang.CharSequence)>(v);
v = virtualinvoke v.<java.util.regex.Matcher: boolean matches()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
label:
return 1;
}
private long getDataSizeAccrual(org.apache.nifi.flowfile.FlowFile)
{
long v;
org.apache.nifi.flowfile.FlowFile v;
org.apache.nifi.processors.standard.ControlRate v;
v := @this: org.apache.nifi.processors.standard.ControlRate;
v := @parameter: org.apache.nifi.flowfile.FlowFile;
v = interfaceinvoke v.<org.apache.nifi.flowfile.FlowFile: long getSize()>();
return v;
}
private long getCountAccrual(org.apache.nifi.flowfile.FlowFile)
{
org.apache.nifi.flowfile.FlowFile v;
long v;
java.util.regex.Matcher v;
java.lang.String v, v, v, v, v;
java.util.regex.Pattern v;
org.apache.nifi.processors.standard.ControlRate v;
boolean v, v, v, v;
v := @this: org.apache.nifi.processors.standard.ControlRate;
v := @parameter: org.apache.nifi.flowfile.FlowFile;
v = -1L;
v = v.<org.apache.nifi.processors.standard.ControlRate: java.lang.String rateControlCriteria>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("flowfile count");
if v != 0 goto label;
v = v.<org.apache.nifi.processors.standard.ControlRate: java.lang.String rateControlCriteria>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("data rate or flowfile count");
if v == 0 goto label;
label:
v = 1L;
label:
v = v.<org.apache.nifi.processors.standard.ControlRate: java.lang.String rateControlCriteria>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("attribute value");
if v == 0 goto label;
v = v.<org.apache.nifi.processors.standard.ControlRate: java.lang.String rateControlAttribute>;
v = interfaceinvoke v.<org.apache.nifi.flowfile.FlowFile: java.lang.String getAttribute(java.lang.String)>(v);
if v != null goto label;
return -1L;
label:
v = <org.apache.nifi.processors.standard.ControlRate: java.util.regex.Pattern POSITIVE_LONG_PATTERN>;
v = virtualinvoke v.<java.util.regex.Pattern: java.util.regex.Matcher matcher(java.lang.CharSequence)>(v);
v = virtualinvoke v.<java.util.regex.Matcher: boolean matches()>();
if v != 0 goto label;
return -1L;
label:
v = staticinvoke <java.lang.Long: long parseLong(java.lang.String)>(v);
label:
return v;
}
private boolean dataThrottleRequired()
{
java.lang.String v, v, v;
org.apache.nifi.processors.standard.ControlRate v;
boolean v, v, v;
v := @this: org.apache.nifi.processors.standard.ControlRate;
v = v.<org.apache.nifi.processors.standard.ControlRate: java.lang.String rateControlCriteria>;
if v == null goto label;
v = v.<org.apache.nifi.processors.standard.ControlRate: java.lang.String rateControlCriteria>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("data rate");
if v != 0 goto label;
v = v.<org.apache.nifi.processors.standard.ControlRate: java.lang.String rateControlCriteria>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("data rate or flowfile count");
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private boolean countThrottleRequired()
{
java.lang.String v, v, v, v;
org.apache.nifi.processors.standard.ControlRate v;
boolean v, v, v, v;
v := @this: org.apache.nifi.processors.standard.ControlRate;
v = v.<org.apache.nifi.processors.standard.ControlRate: java.lang.String rateControlCriteria>;
if v == null goto label;
v = v.<org.apache.nifi.processors.standard.ControlRate: java.lang.String rateControlCriteria>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("flowfile count");
if v != 0 goto label;
v = v.<org.apache.nifi.processors.standard.ControlRate: java.lang.String rateControlCriteria>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("attribute value");
if v != 0 goto label;
v = v.<org.apache.nifi.processors.standard.ControlRate: java.lang.String rateControlCriteria>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("data rate or flowfile count");
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
static void <clinit>()
{
org.apache.nifi.components.PropertyDescriptor v, v, v, v, v, v, v, v, v, v, v;
org.apache.nifi.components.AllowableValue v, v, v, v, v, v, v, v, v, v, v;
org.apache.nifi.processor.Relationship v, v;
java.lang.String 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, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.nifi.expression.ExpressionLanguageScope v, v;
java.util.regex.Pattern v;
org.apache.nifi.components.AllowableValue[] v, v;
java.lang.String[] v, v, v;
org.apache.nifi.components.Validator v, v, v, v, v, v;
org.apache.nifi.processor.Relationship$Builder v, v, v, v, v, v;
java.util.concurrent.TimeUnit v, v;
java.lang.Class v;
v = new org.apache.nifi.components.AllowableValue;
specialinvoke v.<org.apache.nifi.components.AllowableValue: void <init>(java.lang.String,java.lang.String,java.lang.String)>("data rate", "data rate", "Rate is controlled by counting bytes transferred per time duration.");
<org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.AllowableValue DATA_RATE_VALUE> = v;
v = new org.apache.nifi.components.AllowableValue;
specialinvoke v.<org.apache.nifi.components.AllowableValue: void <init>(java.lang.String,java.lang.String,java.lang.String)>("flowfile count", "flowfile count", "Rate is controlled by counting FlowFiles transferred per time duration");
<org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.AllowableValue FLOWFILE_RATE_VALUE> = v;
v = new org.apache.nifi.components.AllowableValue;
specialinvoke v.<org.apache.nifi.components.AllowableValue: void <init>(java.lang.String,java.lang.String,java.lang.String)>("attribute value", "attribute value", "Rate is controlled by accumulating the value of a specified attribute that is transferred per time duration");
<org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.AllowableValue ATTRIBUTE_RATE_VALUE> = v;
v = new org.apache.nifi.components.AllowableValue;
specialinvoke v.<org.apache.nifi.components.AllowableValue: void <init>(java.lang.String,java.lang.String,java.lang.String)>("data rate or flowfile count", "data rate or flowfile count", "Rate is controlled by counting bytes and FlowFiles transferred per time duration; if either threshold is met, throttling is enforced");
<org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.AllowableValue DATA_OR_FLOWFILE_RATE_VALUE> = 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)>("Rate Control Criteria");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder displayName(java.lang.String)>("Rate Control Criteria");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("Indicates the criteria that is used to control the throughput rate. Changing this value resets the rate counters.");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder required(boolean)>(1);
v = newarray (org.apache.nifi.components.AllowableValue)[4];
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.AllowableValue DATA_RATE_VALUE>;
v[0] = v;
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.AllowableValue FLOWFILE_RATE_VALUE>;
v[1] = v;
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.AllowableValue ATTRIBUTE_RATE_VALUE>;
v[2] = v;
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.AllowableValue DATA_OR_FLOWFILE_RATE_VALUE>;
v[3] = v;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder allowableValues(org.apache.nifi.components.AllowableValue[])>(v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder defaultValue(java.lang.String)>("data rate");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
<org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor RATE_CONTROL_CRITERIA> = 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)>("Maximum Rate");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder displayName(java.lang.String)>("Maximum Rate");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("The maximum rate at which data should pass through this processor. The format of this property is expected to be a positive integer, or a Data Size (such as \'1 MB\') if Rate Control Criteria is set to \'data rate\'.");
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 NON_EMPTY_VALIDATOR>;
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.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor RATE_CONTROL_CRITERIA>;
v = newarray (org.apache.nifi.components.AllowableValue)[3];
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.AllowableValue DATA_RATE_VALUE>;
v[0] = v;
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.AllowableValue FLOWFILE_RATE_VALUE>;
v[1] = v;
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.AllowableValue ATTRIBUTE_RATE_VALUE>;
v[2] = v;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder dependsOn(org.apache.nifi.components.PropertyDescriptor,org.apache.nifi.components.AllowableValue[])>(v, v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
<org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor MAX_RATE> = 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)>("Maximum Data Rate");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder displayName(java.lang.String)>("Maximum Data Rate");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("The maximum rate at which data should pass through this processor. The format of this property is expected to be a Data Size (such as \'1 MB\') representing bytes per Time Duration.");
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 DATA_SIZE_VALIDATOR>;
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.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor RATE_CONTROL_CRITERIA>;
v = newarray (java.lang.String)[0];
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder dependsOn(org.apache.nifi.components.PropertyDescriptor,java.lang.String,java.lang.String[])>(v, "data rate or flowfile count", v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
<org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor MAX_DATA_RATE> = 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)>("Maximum FlowFile Rate");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder displayName(java.lang.String)>("Maximum FlowFile Rate");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("The maximum rate at which FlowFiles should pass through this processor. The format of this property is expected to be a positive integer representing FlowFiles count per Time Duration");
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 POSITIVE_LONG_VALIDATOR>;
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.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor RATE_CONTROL_CRITERIA>;
v = newarray (java.lang.String)[0];
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder dependsOn(org.apache.nifi.components.PropertyDescriptor,java.lang.String,java.lang.String[])>(v, "data rate or flowfile count", v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
<org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor MAX_COUNT_RATE> = 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)>("Rate Controlled Attribute");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("The name of an attribute whose values build toward the rate limit if Rate Control Criteria is set to \'attribute value\'. The value of the attribute referenced by this property must be a positive long, or the FlowFile will be routed to failure. This value is ignored if Rate Control Criteria is not set to \'attribute value\'. Changing this value resets the rate counters.");
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 NON_EMPTY_VALIDATOR>;
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 NONE>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder expressionLanguageSupported(org.apache.nifi.expression.ExpressionLanguageScope)>(v);
v = <org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor RATE_CONTROL_CRITERIA>;
v = newarray (java.lang.String)[0];
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder dependsOn(org.apache.nifi.components.PropertyDescriptor,java.lang.String,java.lang.String[])>(v, "attribute value", v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
<org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor RATE_CONTROL_ATTRIBUTE_NAME> = 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)>("Time Duration");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("The amount of time to which the Maximum Rate pertains. Changing this value resets the rate counters.");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder required(boolean)>(1);
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit SECONDS>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit SECONDS>;
v = staticinvoke <org.apache.nifi.processor.util.StandardValidators: org.apache.nifi.components.Validator createTimePeriodValidator(long,java.util.concurrent.TimeUnit,long,java.util.concurrent.TimeUnit)>(1L, v, 2147483647L, v);
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)>("1 min");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
<org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.components.PropertyDescriptor TIME_PERIOD> = 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)>("Grouping Attribute");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("By default, a single \"throttle\" is used for all FlowFiles. If this value is specified, a separate throttle is used for each value specified by the attribute with this name. Changing this value resets the rate counters.");
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 NON_EMPTY_VALIDATOR>;
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 NONE>;
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.ControlRate: org.apache.nifi.components.PropertyDescriptor GROUPING_ATTRIBUTE_NAME> = 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)>("success");
v = virtualinvoke v.<org.apache.nifi.processor.Relationship$Builder: org.apache.nifi.processor.Relationship$Builder description(java.lang.String)>("FlowFiles are transferred to this relationship under normal conditions");
v = virtualinvoke v.<org.apache.nifi.processor.Relationship$Builder: org.apache.nifi.processor.Relationship build()>();
<org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.processor.Relationship REL_SUCCESS> = 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)>("FlowFiles will be routed to this relationship if they are missing a necessary Rate Controlled Attribute or the attribute is not in the expected format");
v = virtualinvoke v.<org.apache.nifi.processor.Relationship$Builder: org.apache.nifi.processor.Relationship build()>();
<org.apache.nifi.processors.standard.ControlRate: org.apache.nifi.processor.Relationship REL_FAILURE> = v;
v = staticinvoke <java.util.regex.Pattern: java.util.regex.Pattern compile(java.lang.String)>("0*[1-9][0-9]*");
<org.apache.nifi.processors.standard.ControlRate: java.util.regex.Pattern POSITIVE_LONG_PATTERN> = v;
v = class "Lorg/apache/nifi/processors/standard/ControlRate;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(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###____DEFAULT_GROUP_ATTRIBUTE___###");
<org.apache.nifi.processors.standard.ControlRate: java.lang.String DEFAULT_GROUP_ATTRIBUTE> = v;
return;
}
}