public class org.apache.nifi.processors.standard.CryptographicHashAttribute extends org.apache.nifi.processor.AbstractProcessor
{
private static final org.apache.nifi.components.AllowableValue ALLOW_PARTIAL_ATTRIBUTES_VALUE;
private static final org.apache.nifi.components.AllowableValue FAIL_PARTIAL_ATTRIBUTES_VALUE;
static final org.apache.nifi.components.PropertyDescriptor CHARACTER_SET;
static final org.apache.nifi.components.PropertyDescriptor FAIL_WHEN_EMPTY;
static final org.apache.nifi.components.PropertyDescriptor HASH_ALGORITHM;
static final org.apache.nifi.components.PropertyDescriptor PARTIAL_ATTR_ROUTE_POLICY;
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.Set relationships;
private static final java.util.List properties;
private final java.util.concurrent.atomic.AtomicReference attributeToGenerateNameMapRef;
public void <init>()
{
org.apache.nifi.processors.standard.CryptographicHashAttribute v;
java.util.concurrent.atomic.AtomicReference v;
java.util.Map v;
v := @this: org.apache.nifi.processors.standard.CryptographicHashAttribute;
specialinvoke v.<org.apache.nifi.processor.AbstractProcessor: void <init>()>();
v = new java.util.concurrent.atomic.AtomicReference;
v = staticinvoke <java.util.Collections: java.util.Map emptyMap()>();
specialinvoke v.<java.util.concurrent.atomic.AtomicReference: void <init>(java.lang.Object)>(v);
v.<org.apache.nifi.processors.standard.CryptographicHashAttribute: java.util.concurrent.atomic.AtomicReference attributeToGenerateNameMapRef> = v;
return;
}
public java.util.Set getRelationships()
{
java.util.Set v;
org.apache.nifi.processors.standard.CryptographicHashAttribute v;
v := @this: org.apache.nifi.processors.standard.CryptographicHashAttribute;
v = <org.apache.nifi.processors.standard.CryptographicHashAttribute: java.util.Set relationships>;
return v;
}
protected java.util.List getSupportedPropertyDescriptors()
{
java.util.List v;
org.apache.nifi.processors.standard.CryptographicHashAttribute v;
v := @this: org.apache.nifi.processors.standard.CryptographicHashAttribute;
v = <org.apache.nifi.processors.standard.CryptographicHashAttribute: java.util.List properties>;
return v;
}
protected org.apache.nifi.components.PropertyDescriptor getSupportedDynamicPropertyDescriptor(java.lang.String)
{
org.apache.nifi.components.Validator v;
java.lang.String v;
org.apache.nifi.processors.standard.CryptographicHashAttribute v;
org.apache.nifi.components.PropertyDescriptor v;
org.apache.nifi.components.PropertyDescriptor$Builder v, v, v;
v := @this: org.apache.nifi.processors.standard.CryptographicHashAttribute;
v := @parameter: java.lang.String;
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)>(v);
v = <org.apache.nifi.processor.util.StandardValidators: org.apache.nifi.components.Validator NON_BLANK_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()>();
return v;
}
public void onPropertyModified(org.apache.nifi.components.PropertyDescriptor, java.lang.String, java.lang.String)
{
java.util.HashMap v;
java.util.concurrent.atomic.AtomicReference v, v;
org.apache.nifi.components.PropertyDescriptor v;
java.util.Map v;
java.lang.Object v;
java.lang.String v, v, v, v;
org.apache.nifi.processors.standard.CryptographicHashAttribute v;
boolean v;
v := @this: org.apache.nifi.processors.standard.CryptographicHashAttribute;
v := @parameter: org.apache.nifi.components.PropertyDescriptor;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor: boolean isRequired()>();
if v == 0 goto label;
return;
label:
v = new java.util.HashMap;
v = v.<org.apache.nifi.processors.standard.CryptographicHashAttribute: java.util.concurrent.atomic.AtomicReference attributeToGenerateNameMapRef>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
specialinvoke v.<java.util.HashMap: void <init>(java.util.Map)>(v);
if v != null goto label;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor: java.lang.String getName()>();
interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
goto label;
label:
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor: java.lang.String getName()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
v = v.<org.apache.nifi.processors.standard.CryptographicHashAttribute: java.util.concurrent.atomic.AtomicReference attributeToGenerateNameMapRef>;
v = staticinvoke <java.util.Collections: java.util.Map unmodifiableMap(java.util.Map)>(v);
virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: void set(java.lang.Object)>(v);
return;
}
public void onTrigger(org.apache.nifi.processor.ProcessContext, org.apache.nifi.processor.ProcessSession)
{
org.apache.nifi.components.PropertyDescriptor v, v, v, v;
org.apache.nifi.components.PropertyValue v, v, v, v;
org.apache.nifi.processors.standard.CryptographicHashAttribute$PartialAttributePolicy v, v;
boolean v, v, v;
org.apache.nifi.flowfile.FlowFile v;
java.util.Set v, v, v, v;
org.apache.nifi.security.util.crypto.HashAlgorithm v;
java.util.SortedMap v;
java.lang.Object[] v, v, v, v;
org.apache.nifi.logging.ComponentLog v;
java.util.concurrent.atomic.AtomicReference v;
org.apache.nifi.provenance.ProvenanceReporter v;
java.nio.charset.Charset v;
org.apache.nifi.processor.Relationship v, v, v;
int v, v;
java.lang.Boolean v;
java.lang.String v, v, v, v, v, v;
java.util.Iterator v;
org.apache.nifi.processor.ProcessContext v;
org.apache.nifi.processor.ProcessSession v;
java.lang.Object v, v, v, v, v, v;
org.apache.nifi.processors.standard.CryptographicHashAttribute v;
v := @this: org.apache.nifi.processors.standard.CryptographicHashAttribute;
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 = <org.apache.nifi.processors.standard.CryptographicHashAttribute: org.apache.nifi.components.PropertyDescriptor CHARACTER_SET>;
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 = staticinvoke <java.nio.charset.Charset: java.nio.charset.Charset forName(java.lang.String)>(v);
v = v.<org.apache.nifi.processors.standard.CryptographicHashAttribute: java.util.concurrent.atomic.AtomicReference attributeToGenerateNameMapRef>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
v = virtualinvoke v.<org.apache.nifi.processors.standard.CryptographicHashAttribute: org.apache.nifi.logging.ComponentLog getLogger()>();
v = staticinvoke <org.apache.nifi.processors.standard.CryptographicHashAttribute: java.util.SortedMap getRelevantAttributes(org.apache.nifi.flowfile.FlowFile,java.util.Map)>(v, v);
v = interfaceinvoke v.<java.util.SortedMap: boolean isEmpty()>();
if v == 0 goto label;
v = <org.apache.nifi.processors.standard.CryptographicHashAttribute: org.apache.nifi.components.PropertyDescriptor FAIL_WHEN_EMPTY>;
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 = newarray (java.lang.Object)[2];
v[0] = v;
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
v = staticinvoke <org.apache.nifi.processors.standard.CryptographicHashAttribute: java.lang.String getMissingKeysString(java.util.Set,java.util.Set)>(null, v);
v[1] = v;
interfaceinvoke v.<org.apache.nifi.logging.ComponentLog: void info(java.lang.String,java.lang.Object[])>("Routing {} to \'failure\' because of missing all attributes: {}", v);
v = <org.apache.nifi.processors.standard.CryptographicHashAttribute: 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 = interfaceinvoke v.<java.util.SortedMap: int size()>();
v = interfaceinvoke v.<java.util.Map: int size()>();
if v == v goto label;
v = <org.apache.nifi.processors.standard.CryptographicHashAttribute: org.apache.nifi.components.PropertyDescriptor PARTIAL_ATTR_ROUTE_POLICY>;
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 = staticinvoke <org.apache.nifi.processors.standard.CryptographicHashAttribute$PartialAttributePolicy: org.apache.nifi.processors.standard.CryptographicHashAttribute$PartialAttributePolicy valueOf(java.lang.String)>(v);
v = <org.apache.nifi.processors.standard.CryptographicHashAttribute$PartialAttributePolicy: org.apache.nifi.processors.standard.CryptographicHashAttribute$PartialAttributePolicy PROHIBIT>;
if v != v goto label;
v = newarray (java.lang.Object)[2];
v[0] = v;
v = interfaceinvoke v.<java.util.SortedMap: java.util.Set keySet()>();
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
v = staticinvoke <org.apache.nifi.processors.standard.CryptographicHashAttribute: java.lang.String getMissingKeysString(java.util.Set,java.util.Set)>(v, v);
v[1] = v;
interfaceinvoke v.<org.apache.nifi.logging.ComponentLog: void info(java.lang.String,java.lang.Object[])>("Routing {} to \'failure\' because of missing attributes: {}", v);
v = <org.apache.nifi.processors.standard.CryptographicHashAttribute: 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.CryptographicHashAttribute: org.apache.nifi.components.PropertyDescriptor HASH_ALGORITHM>;
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 = newarray (java.lang.Object)[1];
v[0] = v;
interfaceinvoke v.<org.apache.nifi.logging.ComponentLog: void debug(java.lang.String,java.lang.Object[])>("Using algorithm {}", v);
v = staticinvoke <org.apache.nifi.security.util.crypto.HashAlgorithm: org.apache.nifi.security.util.crypto.HashAlgorithm fromName(java.lang.String)>(v);
v = interfaceinvoke v.<java.util.SortedMap: java.util.Set entrySet()>();
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 = newarray (java.lang.Object)[2];
v[0] = v;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v[1] = v;
interfaceinvoke v.<org.apache.nifi.logging.ComponentLog: void debug(java.lang.String,java.lang.Object[])>("Generating {} hash of attribute \'{}\'", v);
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = specialinvoke v.<org.apache.nifi.processors.standard.CryptographicHashAttribute: java.lang.String hashValue(org.apache.nifi.security.util.crypto.HashAlgorithm,java.lang.String,java.nio.charset.Charset)>(v, v, v);
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(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, v, v);
goto label;
label:
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessSession: org.apache.nifi.provenance.ProvenanceReporter getProvenanceReporter()>();
interfaceinvoke v.<org.apache.nifi.provenance.ProvenanceReporter: void modifyAttributes(org.apache.nifi.flowfile.FlowFile)>(v);
v = <org.apache.nifi.processors.standard.CryptographicHashAttribute: 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);
return;
}
private static java.util.SortedMap getRelevantAttributes(org.apache.nifi.flowfile.FlowFile, java.util.Map)
{
java.util.Iterator v;
org.apache.nifi.flowfile.FlowFile v;
java.util.Set v;
java.util.TreeMap v;
java.util.Map v;
java.lang.Object v, v;
java.lang.String v;
boolean v;
v := @parameter: org.apache.nifi.flowfile.FlowFile;
v := @parameter: java.util.Map;
v = new java.util.TreeMap;
specialinvoke v.<java.util.TreeMap: void <init>()>();
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
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 getKey()>();
v = interfaceinvoke v.<org.apache.nifi.flowfile.FlowFile: java.lang.String getAttribute(java.lang.String)>(v);
if v == null goto label;
interfaceinvoke v.<java.util.SortedMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
return v;
}
private java.lang.String hashValue(org.apache.nifi.security.util.crypto.HashAlgorithm, java.lang.String, java.nio.charset.Charset)
{
java.lang.Object[] v;
org.apache.nifi.logging.ComponentLog v;
java.nio.charset.Charset v;
java.lang.String v, v, v;
org.apache.nifi.processors.standard.CryptographicHashAttribute v;
org.apache.nifi.security.util.crypto.HashAlgorithm v;
v := @this: org.apache.nifi.processors.standard.CryptographicHashAttribute;
v := @parameter: org.apache.nifi.security.util.crypto.HashAlgorithm;
v := @parameter: java.lang.String;
v := @parameter: java.nio.charset.Charset;
if v != null goto label;
v = virtualinvoke v.<org.apache.nifi.processors.standard.CryptographicHashAttribute: org.apache.nifi.logging.ComponentLog getLogger()>();
v = newarray (java.lang.Object)[1];
v = virtualinvoke v.<org.apache.nifi.security.util.crypto.HashAlgorithm: java.lang.String getName()>();
v[0] = v;
interfaceinvoke v.<org.apache.nifi.logging.ComponentLog: void warn(java.lang.String,java.lang.Object[])>("Tried to calculate {} hash of null value; returning empty string", v);
return "";
label:
v = staticinvoke <org.apache.nifi.security.util.crypto.HashService: java.lang.String hashValue(org.apache.nifi.security.util.crypto.HashAlgorithm,java.lang.String,java.nio.charset.Charset)>(v, v, v);
return v;
}
private static java.lang.String getMissingKeysString(java.util.Set, java.util.Set)
{
java.util.Iterator v;
java.util.Set v, v;
java.lang.Object v;
java.lang.StringBuilder v, v;
java.lang.String v;
boolean v, v;
v := @parameter: java.util.Set;
v := @parameter: java.util.Set;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
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()>();
if v == null goto label;
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v != 0 goto label;
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(" ");
goto label;
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
static void <clinit>()
{
org.apache.nifi.components.PropertyDescriptor v, v, v, v, v, v, v, v;
java.util.Set v;
org.apache.nifi.components.AllowableValue v, v, v, v, v;
java.util.ArrayList v;
org.apache.nifi.processor.Relationship v, v, v, v;
java.lang.String 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, v, v;
org.apache.nifi.processors.standard.CryptographicHashAttribute$PartialAttributePolicy v, v;
java.util.List v;
org.apache.nifi.security.util.crypto.HashAlgorithm v;
org.apache.nifi.components.AllowableValue[] v, v, v;
java.lang.String[] v;
java.util.HashSet v;
org.apache.nifi.components.Validator v, v, v, v;
org.apache.nifi.processor.Relationship$Builder v, v, v, v, v, v;
v = new org.apache.nifi.components.AllowableValue;
v = <org.apache.nifi.processors.standard.CryptographicHashAttribute$PartialAttributePolicy: org.apache.nifi.processors.standard.CryptographicHashAttribute$PartialAttributePolicy ALLOW>;
v = virtualinvoke v.<org.apache.nifi.processors.standard.CryptographicHashAttribute$PartialAttributePolicy: java.lang.String name()>();
specialinvoke v.<org.apache.nifi.components.AllowableValue: void <init>(java.lang.String,java.lang.String,java.lang.String)>(v, "Allow missing attributes", "Do not route to failure if there are attributes configured for hashing that are not present in the flowfile");
<org.apache.nifi.processors.standard.CryptographicHashAttribute: org.apache.nifi.components.AllowableValue ALLOW_PARTIAL_ATTRIBUTES_VALUE> = v;
v = new org.apache.nifi.components.AllowableValue;
v = <org.apache.nifi.processors.standard.CryptographicHashAttribute$PartialAttributePolicy: org.apache.nifi.processors.standard.CryptographicHashAttribute$PartialAttributePolicy PROHIBIT>;
v = virtualinvoke v.<org.apache.nifi.processors.standard.CryptographicHashAttribute$PartialAttributePolicy: java.lang.String name()>();
specialinvoke v.<org.apache.nifi.components.AllowableValue: void <init>(java.lang.String,java.lang.String,java.lang.String)>(v, "Fail if missing attributes", "Route to failure if there are attributes configured for hashing that are not present in the flowfile");
<org.apache.nifi.processors.standard.CryptographicHashAttribute: org.apache.nifi.components.AllowableValue FAIL_PARTIAL_ATTRIBUTES_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)>("character_set");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder displayName(java.lang.String)>("Character Set");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("The Character Set used to decode the attribute being hashed -- this applies to the incoming data encoding, not the resulting hash encoding. ");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder required(boolean)>(1);
v = staticinvoke <org.apache.nifi.security.util.crypto.HashService: org.apache.nifi.components.AllowableValue[] buildCharacterSetAllowableValues()>();
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder allowableValues(org.apache.nifi.components.AllowableValue[])>(v);
v = <org.apache.nifi.processor.util.StandardValidators: org.apache.nifi.components.Validator CHARACTER_SET_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$Builder defaultValue(java.lang.String)>("UTF-8");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
<org.apache.nifi.processors.standard.CryptographicHashAttribute: org.apache.nifi.components.PropertyDescriptor CHARACTER_SET> = 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)>("fail_when_empty");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder displayName(java.lang.String)>("Fail when no attributes present");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("Route to failure when none of the attributes that are configured for hashing are found. If set to false, then flow files that do not contain any of the attributes that are configured for hashing will just pass through to success.");
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 required(boolean)>(1);
v = <org.apache.nifi.processor.util.StandardValidators: org.apache.nifi.components.Validator BOOLEAN_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$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.CryptographicHashAttribute: org.apache.nifi.components.PropertyDescriptor FAIL_WHEN_EMPTY> = 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)>("hash_algorithm");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder displayName(java.lang.String)>("Hash Algorithm");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("The cryptographic hash algorithm to use. Note that not all of the algorithms available are recommended for use (some are provided for legacy use). There are many things to consider when picking an algorithm; it is recommended to use the most secure algorithm possible.");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder required(boolean)>(1);
v = staticinvoke <org.apache.nifi.security.util.crypto.HashService: org.apache.nifi.components.AllowableValue[] buildHashAlgorithmAllowableValues()>();
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder allowableValues(org.apache.nifi.components.AllowableValue[])>(v);
v = <org.apache.nifi.security.util.crypto.HashAlgorithm: org.apache.nifi.security.util.crypto.HashAlgorithm SHA256>;
v = virtualinvoke v.<org.apache.nifi.security.util.crypto.HashAlgorithm: java.lang.String getName()>();
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder defaultValue(java.lang.String)>(v);
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 = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
<org.apache.nifi.processors.standard.CryptographicHashAttribute: org.apache.nifi.components.PropertyDescriptor HASH_ALGORITHM> = 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)>("missing_attr_policy");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder displayName(java.lang.String)>("Missing attribute policy");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("Policy for how the processor handles attributes that are configured for hashing but are not found in the flowfile.");
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)[2];
v = <org.apache.nifi.processors.standard.CryptographicHashAttribute: org.apache.nifi.components.AllowableValue ALLOW_PARTIAL_ATTRIBUTES_VALUE>;
v[0] = v;
v = <org.apache.nifi.processors.standard.CryptographicHashAttribute: org.apache.nifi.components.AllowableValue FAIL_PARTIAL_ATTRIBUTES_VALUE>;
v[1] = v;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder allowableValues(org.apache.nifi.components.AllowableValue[])>(v);
v = <org.apache.nifi.processor.util.StandardValidators: org.apache.nifi.components.Validator NON_BLANK_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.CryptographicHashAttribute: org.apache.nifi.components.AllowableValue ALLOW_PARTIAL_ATTRIBUTES_VALUE>;
v = virtualinvoke v.<org.apache.nifi.components.AllowableValue: java.lang.String getValue()>();
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder defaultValue(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
<org.apache.nifi.processors.standard.CryptographicHashAttribute: org.apache.nifi.components.PropertyDescriptor PARTIAL_ATTR_ROUTE_POLICY> = 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)>("Used for flowfiles that have a hash value added");
v = virtualinvoke v.<org.apache.nifi.processor.Relationship$Builder: org.apache.nifi.processor.Relationship build()>();
<org.apache.nifi.processors.standard.CryptographicHashAttribute: 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)>("Used for flowfiles that are missing required attributes");
v = virtualinvoke v.<org.apache.nifi.processor.Relationship$Builder: org.apache.nifi.processor.Relationship build()>();
<org.apache.nifi.processors.standard.CryptographicHashAttribute: org.apache.nifi.processor.Relationship REL_FAILURE> = v;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = <org.apache.nifi.processors.standard.CryptographicHashAttribute: org.apache.nifi.processor.Relationship REL_FAILURE>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.CryptographicHashAttribute: org.apache.nifi.processor.Relationship REL_SUCCESS>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = staticinvoke <java.util.Collections: java.util.Set unmodifiableSet(java.util.Set)>(v);
<org.apache.nifi.processors.standard.CryptographicHashAttribute: java.util.Set relationships> = v;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = <org.apache.nifi.processors.standard.CryptographicHashAttribute: org.apache.nifi.components.PropertyDescriptor CHARACTER_SET>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.CryptographicHashAttribute: org.apache.nifi.components.PropertyDescriptor FAIL_WHEN_EMPTY>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.CryptographicHashAttribute: org.apache.nifi.components.PropertyDescriptor HASH_ALGORITHM>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.CryptographicHashAttribute: org.apache.nifi.components.PropertyDescriptor PARTIAL_ATTR_ROUTE_POLICY>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = staticinvoke <java.util.Collections: java.util.List unmodifiableList(java.util.List)>(v);
<org.apache.nifi.processors.standard.CryptographicHashAttribute: java.util.List properties> = v;
return;
}
}