Package com.ibm.fhir.model.visitor
Class ResourceFingerprintVisitor
- java.lang.Object
-
- com.ibm.fhir.model.visitor.DefaultVisitor
-
- com.ibm.fhir.model.visitor.PathAwareVisitor
-
- com.ibm.fhir.model.visitor.ResourceFingerprintVisitor
-
- All Implemented Interfaces:
Visitor
public class ResourceFingerprintVisitor extends PathAwareVisitor
Compute a cryptographic hash of the visited nodes, skipping those which may be altered by the persistence layer.
-
-
Field Summary
-
Fields inherited from class com.ibm.fhir.model.visitor.DefaultVisitor
visitChildren
-
-
Constructor Summary
Constructors Constructor Description ResourceFingerprintVisitor()Public constructor.ResourceFingerprintVisitor(byte[] salt)Public constructor.ResourceFingerprintVisitor(SaltHash baseline)Public constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddoVisit(String elementName, String value)protected voiddoVisitStart(String elementName, int elementIndex, Resource resource)SaltHashgetSaltAndHash()Compute the digest and return the result along with the salt that was usedprotected booleanincludePath()Test whether or not the current path value should be included in the fingerprintprotected voidupdateDigest(String name, String value)Update the digest with the name/value pairvoidvisit(String elementName, byte[] value)booleanvisit(String elementName, int index, Instant value)Delegates to#visit(elementName, elementIndex, Element)booleanvisit(String elementName, int index, String value)Delegates to#visit(elementName, elementIndex, Element)voidvisit(String elementName, Boolean value)voidvisit(String elementName, Integer value)voidvisit(String elementName, BigDecimal value)voidvisit(String elementName, LocalDate value)voidvisit(String elementName, LocalTime value)voidvisit(String elementName, Year value)voidvisit(String elementName, YearMonth value)voidvisit(String elementName, ZonedDateTime value)-
Methods inherited from class com.ibm.fhir.model.visitor.PathAwareVisitor
doVisitEnd, doVisitEnd, doVisitStart, getPath, reset, visit, visitEnd, visitEnd, visitStart, visitStart
-
Methods inherited from class com.ibm.fhir.model.visitor.DefaultVisitor
postVisit, postVisit, preVisit, preVisit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visitEnd, visitStart
-
-
-
-
Constructor Detail
-
ResourceFingerprintVisitor
public ResourceFingerprintVisitor(byte[] salt)
Public constructor. Uses the given salt- Parameters:
salt-
-
ResourceFingerprintVisitor
public ResourceFingerprintVisitor(SaltHash baseline)
Public constructor. Uses the salt from the given SaltHash Preferred, to avoid confusion between salt and hash- Parameters:
baseline-
-
ResourceFingerprintVisitor
public ResourceFingerprintVisitor()
Public constructor. Generates a new salt
-
-
Method Detail
-
getSaltAndHash
public SaltHash getSaltAndHash()
Compute the digest and return the result along with the salt that was used- Returns:
-
doVisitStart
protected void doVisitStart(String elementName, int elementIndex, Resource resource)
- Overrides:
doVisitStartin classPathAwareVisitor
-
visit
public boolean visit(String elementName, int index, String value)
Description copied from class:DefaultVisitorDelegates to#visit(elementName, elementIndex, Element)- Specified by:
visitin interfaceVisitor- Overrides:
visitin classDefaultVisitor- Returns:
- true if the children of this string should be visited; otherwise false
-
visit
public boolean visit(String elementName, int index, Instant value)
Description copied from class:DefaultVisitorDelegates to#visit(elementName, elementIndex, Element)- Specified by:
visitin interfaceVisitor- Overrides:
visitin classDefaultVisitor- Returns:
- true if the children of this instant should be visited; otherwise false
-
visit
public void visit(String elementName, byte[] value)
- Specified by:
visitin interfaceVisitor- Overrides:
visitin classDefaultVisitor
-
visit
public void visit(String elementName, BigDecimal value)
- Specified by:
visitin interfaceVisitor- Overrides:
visitin classDefaultVisitor
-
visit
public void visit(String elementName, Boolean value)
- Specified by:
visitin interfaceVisitor- Overrides:
visitin classDefaultVisitor
-
visit
public void visit(String elementName, Integer value)
- Specified by:
visitin interfaceVisitor- Overrides:
visitin classDefaultVisitor
-
visit
public void visit(String elementName, LocalDate value)
- Specified by:
visitin interfaceVisitor- Overrides:
visitin classDefaultVisitor
-
visit
public void visit(String elementName, LocalTime value)
- Specified by:
visitin interfaceVisitor- Overrides:
visitin classDefaultVisitor
-
doVisit
public void doVisit(String elementName, String value)
- Overrides:
doVisitin classPathAwareVisitor
-
visit
public void visit(String elementName, Year value)
- Specified by:
visitin interfaceVisitor- Overrides:
visitin classDefaultVisitor
-
visit
public void visit(String elementName, YearMonth value)
- Specified by:
visitin interfaceVisitor- Overrides:
visitin classDefaultVisitor
-
visit
public void visit(String elementName, ZonedDateTime value)
- Specified by:
visitin interfaceVisitor- Overrides:
visitin classDefaultVisitor
-
updateDigest
protected void updateDigest(String name, String value)
Update the digest with the name/value pair- Parameters:
name-value-
-
includePath
protected boolean includePath()
Test whether or not the current path value should be included in the fingerprint- Returns:
-
-