subtype;
+ @XmlElement(name = "Level")
+ @XmlSchemaType(name = "string")
+ protected ProcessedLevelType level;
+ @XmlElement(name = "Product")
+ protected RegistryIDType product;
+ @XmlElement(name = "CaptureDevice")
+ protected RegistryIDType captureDevice;
+ @XmlElement(name = "FeatureExtractionAlgorithm")
+ protected RegistryIDType featureExtractionAlgorithm;
+ @XmlElement(name = "ComparisonAlgorithm")
+ protected RegistryIDType comparisonAlgorithm;
+ @XmlElement(name = "CompressionAlgorithm")
+ protected RegistryIDType compressionAlgorithm;
+ @XmlElement(name = "Purpose")
+ @XmlSchemaType(name = "string")
+ protected PurposeType purpose;
+ @XmlElement(name = "Quality")
+ protected QualityType quality;
+
+ /**
+ * Gets the value of the challengeResponse property.
+ *
+ * @return possible object is byte[]
+ */
+ public byte[] getChallengeResponse() {
+ return challengeResponse;
+ }
+
+ /**
+ * Sets the value of the challengeResponse property.
+ *
+ * @param value allowed object is byte[]
+ */
+ public void setChallengeResponse(byte[] value) {
+ this.challengeResponse = value;
+ }
+
+ /**
+ * Gets the value of the index property.
+ *
+ * @return possible object is {@link String }
+ *
+ */
+ public String getIndex() {
+ return index;
+ }
+
+ /**
+ * Sets the value of the index property.
+ *
+ * @param value allowed object is {@link String }
+ *
+ */
+ public void setIndex(String value) {
+ this.index = value;
+ }
+
+ /**
+ * Gets the value of the format property.
+ *
+ * @return possible object is {@link RegistryIDType }
+ *
+ */
+ public RegistryIDType getFormat() {
+ return format;
+ }
+
+ /**
+ * Sets the value of the format property.
+ *
+ * @param value allowed object is {@link RegistryIDType }
+ *
+ */
+ public void setFormat(RegistryIDType value) {
+ this.format = value;
+ }
+
+ /**
+ * Gets the value of the encryption property.
+ *
+ * @return possible object is {@link Boolean }
+ *
+ */
+ public Boolean isEncryption() {
+ return encryption;
+ }
+
+ /**
+ * Sets the value of the encryption property.
+ *
+ * @param value allowed object is {@link Boolean }
+ *
+ */
+ public void setEncryption(Boolean value) {
+ this.encryption = value;
+ }
+
+ /**
+ * Gets the value of the creationDate property.
+ *
+ * @return possible object is {@link LocalDateTime }
+ *
+ */
+ public LocalDateTime getCreationDate() {
+ return creationDate;
+ }
+
+ /**
+ * Sets the value of the creationDate property.
+ *
+ * @param value allowed object is {@link LocalDateTime }
+ *
+ */
+ public void setCreationDate(LocalDateTime value) {
+ this.creationDate = value;
+ }
+
+ /**
+ * Gets the value of the notValidBefore property.
+ *
+ * @return possible object is {@link LocalDateTime }
+ *
+ */
+ public LocalDateTime getNotValidBefore() {
+ return notValidBefore;
+ }
+
+ /**
+ * Sets the value of the notValidBefore property.
+ *
+ * @param value allowed object is {@link LocalDateTime }
+ *
+ */
+ public void setNotValidBefore(LocalDateTime value) {
+ this.notValidBefore = value;
+ }
+
+ /**
+ * Gets the value of the notValidAfter property.
+ *
+ * @return possible object is {@link LocalDateTime }
+ *
+ */
+ public LocalDateTime getNotValidAfter() {
+ return notValidAfter;
+ }
+
+ /**
+ * Sets the value of the notValidAfter property.
+ *
+ * @param value allowed object is {@link LocalDateTime }
+ *
+ */
+ public void setNotValidAfter(LocalDateTime value) {
+ this.notValidAfter = value;
+ }
+
+ /**
+ * Gets the value of the type property.
+ *
+ *
+ * This accessor method returns a reference to the live list, not a snapshot.
+ * Therefore any modification you make to the returned list will be present
+ * inside the JAXB object. This is why there is not a set
method
+ * for the type property.
+ *
+ *
+ * For example, to add a new item, do as follows:
+ *
+ *
+ * getType().add(newItem);
+ *
+ *
+ *
+ *
+ * Objects of the following type(s) are allowed in the list
+ * {@link SingleType Type }
+ *
+ *
+ */
+ public List getType() {
+ if (type == null) {
+ type = new ArrayList();
+ }
+ return this.type;
+ }
+
+ /**
+ * Gets the value of the subtype property.
+ *
+ *
+ * This accessor method returns a reference to the live list, not a snapshot.
+ * Therefore any modification you make to the returned list will be present
+ * inside the JAXB object. This is why there is not a set
method
+ * for the subtype property.
+ *
+ *
+ * For example, to add a new item, do as follows:
+ *
+ *
+ * getSubtype().add(newItem);
+ *
+ *
+ *
+ *
+ * Objects of the following type(s) are allowed in the list {@link String }
+ *
+ *
+ */
+ public List getSubtype() {
+ if (subtype == null) {
+ subtype = new ArrayList();
+ }
+ return this.subtype;
+ }
+
+ /**
+ * Gets the value of the level property.
+ *
+ * @return possible object is {@link ProcessedLevelType }
+ *
+ */
+ public ProcessedLevelType getLevel() {
+ return level;
+ }
+
+ /**
+ * Sets the value of the level property.
+ *
+ * @param value allowed object is {@link ProcessedLevelType }
+ *
+ */
+ public void setLevel(ProcessedLevelType value) {
+ this.level = value;
+ }
+
+ /**
+ * Gets the value of the product property.
+ *
+ * @return possible object is {@link RegistryIDType }
+ *
+ */
+ public RegistryIDType getProduct() {
+ return product;
+ }
+
+ /**
+ * @param type the type to set
+ */
+ public void setType(List type) {
+ this.type = type;
+ }
+
+ /**
+ * @param subtype the subtype to set
+ */
+ public void setSubtype(List subtype) {
+ this.subtype = subtype;
+ }
+
+ /**
+ * Sets the value of the product property.
+ *
+ * @param value allowed object is {@link RegistryIDType }
+ *
+ */
+ public void setProduct(RegistryIDType value) {
+ this.product = value;
+ }
+
+ /**
+ * Gets the value of the captureDevice property.
+ *
+ * @return possible object is {@link RegistryIDType }
+ *
+ */
+ public RegistryIDType getCaptureDevice() {
+ return captureDevice;
+ }
+
+ /**
+ * Sets the value of the captureDevice property.
+ *
+ * @param value allowed object is {@link RegistryIDType }
+ *
+ */
+ public void setCaptureDevice(RegistryIDType value) {
+ this.captureDevice = value;
+ }
+
+ /**
+ * Gets the value of the featureExtractionAlgorithm property.
+ *
+ * @return possible object is {@link RegistryIDType }
+ *
+ */
+ public RegistryIDType getFeatureExtractionAlgorithm() {
+ return featureExtractionAlgorithm;
+ }
+
+ /**
+ * Sets the value of the featureExtractionAlgorithm property.
+ *
+ * @param value allowed object is {@link RegistryIDType }
+ *
+ */
+ public void setFeatureExtractionAlgorithm(RegistryIDType value) {
+ this.featureExtractionAlgorithm = value;
+ }
+
+ /**
+ * Gets the value of the comparisonAlgorithm property.
+ *
+ * @return possible object is {@link RegistryIDType }
+ *
+ */
+ public RegistryIDType getComparisonAlgorithm() {
+ return comparisonAlgorithm;
+ }
+
+ /**
+ * Sets the value of the comparisonAlgorithm property.
+ *
+ * @param value allowed object is {@link RegistryIDType }
+ *
+ */
+ public void setComparisonAlgorithm(RegistryIDType value) {
+ this.comparisonAlgorithm = value;
+ }
+
+ /**
+ * Gets the value of the compressionAlgorithm property.
+ *
+ * @return possible object is {@link RegistryIDType }
+ *
+ */
+ public RegistryIDType getCompressionAlgorithm() {
+ return compressionAlgorithm;
+ }
+
+ /**
+ * Sets the value of the compressionAlgorithm property.
+ *
+ * @param value allowed object is {@link RegistryIDType }
+ *
+ */
+ public void setCompressionAlgorithm(RegistryIDType value) {
+ this.compressionAlgorithm = value;
+ }
+
+ /**
+ * Gets the value of the purpose property.
+ *
+ * @return possible object is {@link PurposeType }
+ *
+ */
+ public PurposeType getPurpose() {
+ return purpose;
+ }
+
+ /**
+ * Sets the value of the purpose property.
+ *
+ * @param value allowed object is {@link PurposeType }
+ *
+ */
+ public void setPurpose(PurposeType value) {
+ this.purpose = value;
+ }
+
+ /**
+ * Gets the value of the quality property.
+ *
+ * @return possible object is {@link QualityType }
+ *
+ */
+ public QualityType getQuality() {
+ return quality;
+ }
+
+ /**
+ * Sets the value of the quality property.
+ *
+ * @param value allowed object is {@link QualityType }
+ *
+ */
+ public void setQuality(QualityType value) {
+ this.quality = value;
+ }
+
+}
diff --git a/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/BIR.java b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/BIR.java
new file mode 100644
index 000000000..0e2a20229
--- /dev/null
+++ b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/BIR.java
@@ -0,0 +1,175 @@
+/**
+ *
+ */
+package io.mosip.registration.packetmanager.cbeffutil.jaxbclasses;
+
+import java.util.List;
+
+import javax.xml.bind.JAXBElement;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ *
+ * BIR class with Builder to create data
+ *
+ * @author Ramadurai Pandian
+ *
+ */
+@Data
+@NoArgsConstructor
+public class BIR {
+
+ private BIRVersion version;
+ private BIRVersion cbeffversion;
+ private BIRInfo birInfo;
+ private BDBInfo bdbInfo;
+ private byte[] bdb;
+ private byte[] sb;
+ private SBInfo sbInfo;
+ private List> element;
+
+ public BIR(BIRBuilder birBuilder) {
+ this.version = birBuilder.version;
+ this.cbeffversion = birBuilder.cbeffversion;
+ this.birInfo = birBuilder.birInfo;
+ this.bdbInfo = birBuilder.bdbInfo;
+ this.bdb = birBuilder.bdb;
+ this.sb = birBuilder.sb;
+ this.sbInfo = birBuilder.sbInfo;
+ this.element = birBuilder.element;
+ }
+
+ /**
+ * @return the element
+ */
+ public List> getElement() {
+ return element;
+ }
+
+ /**
+ * @return the version
+ */
+ public BIRVersion getVersion() {
+ return version;
+ }
+
+ /**
+ * @return the cbeffversion
+ */
+ public BIRVersion getCbeffversion() {
+ return cbeffversion;
+ }
+
+ /**
+ * @return the birInfo
+ */
+ public BIRInfo getBirInfo() {
+ return birInfo;
+ }
+
+ /**
+ * @return the bdbInfo
+ */
+ public BDBInfo getBdbInfo() {
+ return bdbInfo;
+ }
+
+ /**
+ * @return the bdb
+ */
+ public byte[] getBdb() {
+ return bdb;
+ }
+
+ /**
+ * @return the sb
+ */
+ public byte[] getSb() {
+ return sb;
+ }
+
+ /**
+ * @return the sbInfo
+ */
+ public SBInfo getSbInfo() {
+ return sbInfo;
+ }
+
+ public static class BIRBuilder {
+ private BIRVersion version;
+ private BIRVersion cbeffversion;
+ private BIRInfo birInfo;
+ private BDBInfo bdbInfo;
+ private byte[] bdb;
+ private byte[] sb;
+ private SBInfo sbInfo;
+ private List> element;
+
+ public BIRBuilder withElement(List> list) {
+ this.element = list;
+ return this;
+ }
+
+ public BIRBuilder withVersion(BIRVersion version) {
+ this.version = version;
+ return this;
+ }
+
+ public BIRBuilder withCbeffversion(BIRVersion cbeffversion) {
+ this.cbeffversion = cbeffversion;
+ return this;
+ }
+
+ public BIRBuilder withBirInfo(BIRInfo birInfo) {
+ this.birInfo = birInfo;
+ return this;
+ }
+
+ public BIRBuilder withBdbInfo(BDBInfo bdbInfo) {
+ this.bdbInfo = bdbInfo;
+ return this;
+ }
+
+ public BIRBuilder withBdb(byte[] bdb) {
+ this.bdb = bdb;
+ return this;
+ }
+
+ public BIRBuilder withSb(byte[] sb) {
+ this.sb = sb;
+ return this;
+ }
+
+ public BIRBuilder withSbInfo(SBInfo sbInfo) {
+ this.sbInfo = sbInfo;
+ return this;
+ }
+
+ public BIR build() {
+ return new BIR(this);
+ }
+
+ }
+
+ public BIRType toBIRType(BIR bir) {
+ BIRType bIRType = new BIRType();
+ if (bir.getVersion() != null)
+ bIRType.setVersion(bir.getVersion().toVersion());
+ if (bir.getCbeffversion() != null)
+ bIRType.setCBEFFVersion(bir.getCbeffversion().toVersion());
+ bIRType.setBDB(getBdb());
+ bIRType.setSB(getSb());
+ if (bir.getBirInfo() != null)
+ bIRType.setBIRInfo(bir.getBirInfo().toBIRInfo());
+ if (bir.getBdbInfo() != null)
+ bIRType.setBDBInfo(bir.getBdbInfo().toBDBInfo());
+ if (bir.getSbInfo() != null)
+ bIRType.setSBInfo(bir.getSbInfo().toSBInfoType());
+ if (bir.getElement() != null)
+ bIRType.setAny(getElement());
+ return bIRType;
+ }
+
+}
diff --git a/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/BIRInfo.java b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/BIRInfo.java
new file mode 100644
index 000000000..36e10305e
--- /dev/null
+++ b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/BIRInfo.java
@@ -0,0 +1,144 @@
+/**
+ *
+ */
+package io.mosip.registration.packetmanager.cbeffutil.jaxbclasses;
+
+import java.time.LocalDateTime;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author Ramadurai Pandian
+ *
+ */
+@Data
+@NoArgsConstructor
+public class BIRInfo {
+
+ private String creator;
+ private String index;
+ private byte[] payload;
+ private Boolean integrity;
+ private LocalDateTime creationDate;
+ private LocalDateTime notValidBefore;
+ private LocalDateTime notValidAfter;
+
+ public String getCreator() {
+ return creator;
+ }
+
+ public String getIndex() {
+ return index;
+ }
+
+ public byte[] getPayload() {
+ return payload;
+ }
+
+ public Boolean isIntegrity() {
+ return integrity;
+ }
+
+ public LocalDateTime getCreationDate() {
+ return creationDate;
+ }
+
+ public LocalDateTime getNotValidBefore() {
+ return notValidBefore;
+ }
+
+ public LocalDateTime getNotValidAfter() {
+ return notValidAfter;
+ }
+
+ public BIRInfo(BIRInfoBuilder bIRInfoBuilder) {
+ this.creator = bIRInfoBuilder.creator;
+ this.index = bIRInfoBuilder.index;
+ this.payload = bIRInfoBuilder.payload;
+ this.integrity = bIRInfoBuilder.integrity;
+ this.creationDate = bIRInfoBuilder.creationDate;
+ this.notValidBefore = bIRInfoBuilder.notValidBefore;
+ this.notValidAfter = bIRInfoBuilder.notValidAfter;
+ }
+
+ public static class BIRInfoBuilder {
+ private String creator;
+ private String index;
+ private byte[] payload;
+ private Boolean integrity;
+ private LocalDateTime creationDate;
+ private LocalDateTime notValidBefore;
+ private LocalDateTime notValidAfter;
+
+ public BIRInfoBuilder withCreator(String creator) {
+ this.creator = creator;
+ return this;
+ }
+
+ public BIRInfoBuilder withIndex(String index) {
+ this.index = index;
+ return this;
+ }
+
+ public BIRInfoBuilder withPayload(byte[] payload) {
+ this.payload = payload;
+ return this;
+ }
+
+ public BIRInfoBuilder withIntegrity(Boolean integrity) {
+ this.integrity = integrity;
+ return this;
+ }
+
+ public BIRInfoBuilder withCreationDate(LocalDateTime creationDate) {
+ this.creationDate = creationDate;
+ return this;
+ }
+
+ public BIRInfoBuilder withNotValidBefore(LocalDateTime notValidBefore) {
+ this.notValidBefore = notValidBefore;
+ return this;
+ }
+
+ public BIRInfoBuilder withNotValidAfter(LocalDateTime notValidAfter) {
+ this.notValidAfter = notValidAfter;
+ return this;
+ }
+
+ public BIRInfo build() {
+ return new BIRInfo(this);
+ }
+
+ }
+
+ public BIRInfoType toBIRInfo() {
+ BIRInfoType bIRInfoType = new BIRInfoType();
+ createrPopolation(bIRInfoType);
+ if (isIntegrity() != null) {
+ bIRInfoType.setIntegrity(isIntegrity());
+ }
+
+ if (getPayload() != null && getPayload().length > 0) {
+ bIRInfoType.setPayload(getPayload());
+ }
+ if (getCreationDate() != null) {
+ bIRInfoType.setCreationDate(getCreationDate());
+ }
+ if (getNotValidAfter() != null) {
+ bIRInfoType.setNotValidAfter(getNotValidAfter());
+ }
+ if (getNotValidBefore() != null) {
+ bIRInfoType.setNotValidBefore(getNotValidBefore());
+ }
+
+ return bIRInfoType;
+ }
+
+ private void createrPopolation(BIRInfoType bIRInfoType) {
+ if (getCreator() != null && getCreator().length() > 0) {
+ bIRInfoType.setCreator(getCreator());
+ }
+ }
+
+}
diff --git a/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/BIRInfoType.java b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/BIRInfoType.java
new file mode 100644
index 000000000..7b07806bc
--- /dev/null
+++ b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/BIRInfoType.java
@@ -0,0 +1,210 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
+// See http://java.sun.com/xml/jaxb
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2019.05.13 at 03:22:53 PM IST
+//
+
+package io.mosip.registration.packetmanager.cbeffutil.jaxbclasses;
+
+import java.time.LocalDateTime;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+import io.mosip.registration.packetmanager.cbeffutil.common.DateAdapter;
+
+/**
+ *
+ * Java class for BIRInfoType complex type.
+ *
+ *
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ *
+ *
+ * <complexType name="BIRInfoType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="Creator" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * <element name="Index" type="{http://standards.iso.org/iso-iec/19785/-3/ed-2/}UUIDType" minOccurs="0"/>
+ * <element name="Payload" type="{http://www.w3.org/2001/XMLSchema}base64Binary" minOccurs="0"/>
+ * <element name="Integrity" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ * <element name="CreationDate" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
+ * <element name="NotValidBefore" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
+ * <element name="NotValidAfter" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ *
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "BIRInfoType", propOrder = { "creator", "index", "payload", "integrity", "creationDate",
+ "notValidBefore", "notValidAfter" })
+public class BIRInfoType {
+
+ @XmlElement(name = "Creator")
+ protected String creator;
+ @XmlElement(name = "Index")
+ protected String index;
+ @XmlElement(name = "Payload")
+ protected byte[] payload;
+ @XmlElement(name = "Integrity")
+ protected boolean integrity;
+ @XmlElement(name = "CreationDate")
+ @XmlSchemaType(name = "dateTime")
+ @XmlJavaTypeAdapter(DateAdapter.class)
+ protected LocalDateTime creationDate;
+ @XmlElement(name = "NotValidBefore")
+ @XmlSchemaType(name = "dateTime")
+ @XmlJavaTypeAdapter(DateAdapter.class)
+ protected LocalDateTime notValidBefore;
+ @XmlElement(name = "NotValidAfter")
+ @XmlSchemaType(name = "dateTime")
+ @XmlJavaTypeAdapter(DateAdapter.class)
+ protected LocalDateTime notValidAfter;
+
+ /**
+ * Gets the value of the creator property.
+ *
+ * @return possible object is {@link String }
+ *
+ */
+ public String getCreator() {
+ return creator;
+ }
+
+ /**
+ * Sets the value of the creator property.
+ *
+ * @param value allowed object is {@link String }
+ *
+ */
+ public void setCreator(String value) {
+ this.creator = value;
+ }
+
+ /**
+ * Gets the value of the index property.
+ *
+ * @return possible object is {@link String }
+ *
+ */
+ public String getIndex() {
+ return index;
+ }
+
+ /**
+ * Sets the value of the index property.
+ *
+ * @param value allowed object is {@link String }
+ *
+ */
+ public void setIndex(String value) {
+ this.index = value;
+ }
+
+ /**
+ * Gets the value of the payload property.
+ *
+ * @return possible object is byte[]
+ */
+ public byte[] getPayload() {
+ return payload;
+ }
+
+ /**
+ * Sets the value of the payload property.
+ *
+ * @param value allowed object is byte[]
+ */
+ public void setPayload(byte[] value) {
+ this.payload = value;
+ }
+
+ /**
+ * Gets the value of the integrity property.
+ *
+ */
+ public boolean isIntegrity() {
+ return integrity;
+ }
+
+ /**
+ * Sets the value of the integrity property.
+ *
+ */
+ public void setIntegrity(boolean value) {
+ this.integrity = value;
+ }
+
+ /**
+ * Gets the value of the creationDate property.
+ *
+ * @return possible object is {@link XMLGregorianCalendar }
+ *
+ */
+ public LocalDateTime getCreationDate() {
+ return creationDate;
+ }
+
+ /**
+ * Sets the value of the creationDate property.
+ *
+ * @param value allowed object is {@link XMLGregorianCalendar }
+ *
+ */
+ public void setCreationDate(LocalDateTime value) {
+ this.creationDate = value;
+ }
+
+ /**
+ * Gets the value of the notValidBefore property.
+ *
+ * @return possible object is {@link XMLGregorianCalendar }
+ *
+ */
+ public LocalDateTime getNotValidBefore() {
+ return notValidBefore;
+ }
+
+ /**
+ * Sets the value of the notValidBefore property.
+ *
+ * @param value allowed object is {@link XMLGregorianCalendar }
+ *
+ */
+ public void setNotValidBefore(LocalDateTime value) {
+ this.notValidBefore = value;
+ }
+
+ /**
+ * Gets the value of the notValidAfter property.
+ *
+ * @return possible object is {@link XMLGregorianCalendar }
+ *
+ */
+ public LocalDateTime getNotValidAfter() {
+ return notValidAfter;
+ }
+
+ /**
+ * Sets the value of the notValidAfter property.
+ *
+ * @param value allowed object is {@link XMLGregorianCalendar }
+ *
+ */
+ public void setNotValidAfter(LocalDateTime value) {
+ this.notValidAfter = value;
+ }
+
+}
diff --git a/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/BIRType.java b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/BIRType.java
new file mode 100644
index 000000000..b4f58112c
--- /dev/null
+++ b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/BIRType.java
@@ -0,0 +1,290 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
+// See http://java.sun.com/xml/jaxb
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2019.05.13 at 03:22:53 PM IST
+//
+
+package io.mosip.registration.packetmanager.cbeffutil.jaxbclasses;
+
+import org.w3c.dom.Element;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+import io.mosip.registration.packetmanager.cbeffutil.common.Base64Adapter;
+
+/**
+ *
+ * Java class for BIRType complex type.
+ *
+ *
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ *
+ *
+ * <complexType name="BIRType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="Version" type="{http://standards.iso.org/iso-iec/19785/-3/ed-2/}VersionType" minOccurs="0"/>
+ * <element name="CBEFFVersion" type="{http://standards.iso.org/iso-iec/19785/-3/ed-2/}VersionType" minOccurs="0"/>
+ * <any processContents='skip' namespace='##other' maxOccurs="unbounded" minOccurs="0"/>
+ * <element name="BIRInfo" type="{http://standards.iso.org/iso-iec/19785/-3/ed-2/}BIRInfoType"/>
+ * <element name="BDBInfo" type="{http://standards.iso.org/iso-iec/19785/-3/ed-2/}BDBInfoType" minOccurs="0"/>
+ * <element name="SBInfo" type="{http://standards.iso.org/iso-iec/19785/-3/ed-2/}SBInfoType" minOccurs="0"/>
+ * <element name="BIR" type="{http://standards.iso.org/iso-iec/19785/-3/ed-2/}BIRType" maxOccurs="unbounded" minOccurs="0"/>
+ * <element name="BDB" type="{http://www.w3.org/2001/XMLSchema}base64Binary" minOccurs="0"/>
+ * <element name="SB" type="{http://www.w3.org/2001/XMLSchema}base64Binary" minOccurs="0"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ *
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "BIRType", propOrder = { "version", "cbeffVersion", "any", "birInfo", "bdbInfo", "sbInfo", "bir", "bdb",
+ "sb" })
+@XmlRootElement(name = "BIR")
+public class BIRType {
+
+ @XmlElement(name = "Version")
+ protected VersionType version;
+ @XmlElement(name = "CBEFFVersion")
+ protected VersionType cbeffVersion;
+ @XmlAnyElement
+ protected List> any;
+ @XmlElement(name = "BIRInfo", required = true)
+ protected BIRInfoType birInfo;
+ @XmlElement(name = "BDBInfo")
+ protected BDBInfoType bdbInfo;
+ @XmlElement(name = "SBInfo")
+ protected SBInfoType sbInfo;
+ @XmlElement(name = "BIR")
+ protected List bir;
+ @XmlElement(name = "BDB")
+ @XmlJavaTypeAdapter(Base64Adapter.class)
+ protected byte[] bdb;
+ @XmlElement(name = "SB")
+ protected byte[] sb;
+
+ /**
+ * Gets the value of the version property.
+ *
+ * @return possible object is {@link VersionType }
+ *
+ */
+ public VersionType getVersion() {
+ return version;
+ }
+
+ /**
+ * @param bir the bir to set
+ */
+ public void setBir(List bir) {
+ this.bir = bir;
+ }
+
+ /**
+ * @param any the any to set
+ */
+ public void setAny(List> any) {
+ this.any = any;
+ }
+
+ /**
+ * Sets the value of the version property.
+ *
+ * @param value allowed object is {@link VersionType }
+ *
+ */
+ public void setVersion(VersionType value) {
+ this.version = value;
+ }
+
+ /**
+ * Gets the value of the cbeffVersion property.
+ *
+ * @return possible object is {@link VersionType }
+ *
+ */
+ public VersionType getCBEFFVersion() {
+ return cbeffVersion;
+ }
+
+ /**
+ * Sets the value of the cbeffVersion property.
+ *
+ * @param value allowed object is {@link VersionType }
+ *
+ */
+ public void setCBEFFVersion(VersionType value) {
+ this.cbeffVersion = value;
+ }
+
+ /**
+ * Gets the value of the any property.
+ *
+ *
+ * This accessor method returns a reference to the live list, not a snapshot.
+ * Therefore any modification you make to the returned list will be present
+ * inside the JAXB object. This is why there is not a set
method
+ * for the any property.
+ *
+ *
+ * For example, to add a new item, do as follows:
+ *
+ *
+ * getAny().add(newItem);
+ *
+ *
+ *
+ *
+ * Objects of the following type(s) are allowed in the list {@link Element }
+ *
+ *
+ */
+ public List> getAny() {
+ if (any == null) {
+ any = new ArrayList>();
+ }
+ return this.any;
+ }
+
+ /**
+ * Gets the value of the birInfo property.
+ *
+ * @return possible object is {@link BIRInfoType }
+ *
+ */
+ public BIRInfoType getBIRInfo() {
+ return birInfo;
+ }
+
+ /**
+ * Sets the value of the birInfo property.
+ *
+ * @param value allowed object is {@link BIRInfoType }
+ *
+ */
+ public void setBIRInfo(BIRInfoType value) {
+ this.birInfo = value;
+ }
+
+ /**
+ * Gets the value of the bdbInfo property.
+ *
+ * @return possible object is {@link BDBInfoType }
+ *
+ */
+ public BDBInfoType getBDBInfo() {
+ return bdbInfo;
+ }
+
+ /**
+ * Sets the value of the bdbInfo property.
+ *
+ * @param value allowed object is {@link BDBInfoType }
+ *
+ */
+ public void setBDBInfo(BDBInfoType value) {
+ this.bdbInfo = value;
+ }
+
+ /**
+ * Gets the value of the sbInfo property.
+ *
+ * @return possible object is {@link SBInfoType }
+ *
+ */
+ public SBInfoType getSBInfo() {
+ return sbInfo;
+ }
+
+ /**
+ * Sets the value of the sbInfo property.
+ *
+ * @param value allowed object is {@link SBInfoType }
+ *
+ */
+ public void setSBInfo(SBInfoType value) {
+ this.sbInfo = value;
+ }
+
+ /**
+ * Gets the value of the bir property.
+ *
+ *
+ * This accessor method returns a reference to the live list, not a snapshot.
+ * Therefore any modification you make to the returned list will be present
+ * inside the JAXB object. This is why there is not a set
method
+ * for the bir property.
+ *
+ *
+ * For example, to add a new item, do as follows:
+ *
+ *
+ * getBIR().add(newItem);
+ *
+ *
+ *
+ *
+ * Objects of the following type(s) are allowed in the list {@link BIRType }
+ *
+ *
+ */
+ public List getBIR() {
+ if (bir == null) {
+ bir = new ArrayList();
+ }
+ return this.bir;
+ }
+
+ /**
+ * Gets the value of the bdb property.
+ *
+ * @return possible object is byte[]
+ */
+ public byte[] getBDB() {
+ return bdb;
+ }
+
+ /**
+ * Sets the value of the bdb property.
+ *
+ * @param value allowed object is byte[]
+ */
+ public void setBDB(byte[] value) {
+ this.bdb = value;
+ }
+
+ /**
+ * Gets the value of the sb property.
+ *
+ * @return possible object is byte[]
+ */
+ public byte[] getSB() {
+ return sb;
+ }
+
+ /**
+ * Sets the value of the sb property.
+ *
+ * @param value allowed object is byte[]
+ */
+ public void setSB(byte[] value) {
+ this.sb = value;
+ }
+
+}
diff --git a/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/BIRVersion.java b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/BIRVersion.java
new file mode 100644
index 000000000..d8e201715
--- /dev/null
+++ b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/BIRVersion.java
@@ -0,0 +1,66 @@
+/**
+ *
+ */
+package io.mosip.registration.packetmanager.cbeffutil.jaxbclasses;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author Ramadurai Pandian
+ *
+ */
+@Data
+@NoArgsConstructor
+public class BIRVersion {
+
+ private int minor;
+ private int major;
+
+ public BIRVersion(BIRVersionBuilder birBuilder) {
+ this.major = birBuilder.major;
+ this.minor = birBuilder.minor;
+ }
+
+ /**
+ * @return the minor
+ */
+ public int getMinor() {
+ return minor;
+ }
+
+ /**
+ * @return the major
+ */
+ public int getMajor() {
+ return major;
+ }
+
+ public static class BIRVersionBuilder {
+ private int minor;
+ private int major;
+
+ public BIRVersionBuilder withMinor(int minor) {
+ this.minor = minor;
+ return this;
+ }
+
+ public BIRVersionBuilder withMajor(int major) {
+ this.major = major;
+ return this;
+ }
+
+ public BIRVersion build() {
+ return new BIRVersion(this);
+ }
+ }
+
+ public VersionType toVersion() {
+ VersionType version = new VersionType();
+ if (getMinor() > 0)
+ version.setMinor(getMinor());
+ if (getMajor() > 0)
+ version.setMajor(getMajor());
+ return version;
+ }
+}
diff --git a/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/ProcessedLevelType.java b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/ProcessedLevelType.java
new file mode 100644
index 000000000..bdb084543
--- /dev/null
+++ b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/ProcessedLevelType.java
@@ -0,0 +1,62 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
+// See http://java.sun.com/xml/jaxb
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2019.05.13 at 03:22:53 PM IST
+//
+
+package io.mosip.registration.packetmanager.cbeffutil.jaxbclasses;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ *
+ * Java class for ProcessedLevelType.
+ *
+ *
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ *
+ *
+ *
+ * <simpleType name="ProcessedLevelType">
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * <enumeration value="Raw"/>
+ * <enumeration value="Intermediate"/>
+ * <enumeration value="Processed"/>
+ * </restriction>
+ * </simpleType>
+ *
+ *
+ */
+@XmlType(name = "ProcessedLevelType")
+@XmlEnum
+public enum ProcessedLevelType {
+
+ @XmlEnumValue("Raw")
+ RAW("Raw"), @XmlEnumValue("Intermediate")
+ INTERMEDIATE("Intermediate"), @XmlEnumValue("Processed")
+ PROCESSED("Processed");
+
+ private final String value;
+
+ ProcessedLevelType(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ public static ProcessedLevelType fromValue(String v) {
+ for (ProcessedLevelType c : ProcessedLevelType.values()) {
+ if (c.value.equalsIgnoreCase(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v);
+ }
+
+}
diff --git a/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/PurposeType.java b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/PurposeType.java
new file mode 100644
index 000000000..884a608c6
--- /dev/null
+++ b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/PurposeType.java
@@ -0,0 +1,68 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
+// See http://java.sun.com/xml/jaxb
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2019.05.13 at 03:22:53 PM IST
+//
+
+package io.mosip.registration.packetmanager.cbeffutil.jaxbclasses;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ *
+ * Java class for PurposeType.
+ *
+ *
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ *
+ *
+ *
+ * <simpleType name="PurposeType">
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * <enumeration value="Verify"/>
+ * <enumeration value="Identify"/>
+ * <enumeration value="Enroll"/>
+ * <enumeration value="EnrollVerify"/>
+ * <enumeration value="EnrollIdentify"/>
+ * <enumeration value="Audit"/>
+ * </restriction>
+ * </simpleType>
+ *
+ *
+ */
+@XmlType(name = "PurposeType")
+@XmlEnum
+public enum PurposeType {
+
+ @XmlEnumValue("Verify")
+ VERIFY("Verify"), @XmlEnumValue("Identify")
+ IDENTIFY("Identify"), @XmlEnumValue("Enroll")
+ ENROLL("Enroll"), @XmlEnumValue("EnrollVerify")
+ ENROLL_VERIFY("EnrollVerify"), @XmlEnumValue("EnrollIdentify")
+ ENROLL_IDENTIFY("EnrollIdentify"), @XmlEnumValue("Audit")
+ AUDIT("Audit");
+
+ private final String value;
+
+ PurposeType(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ public static PurposeType fromValue(String v) {
+ for (PurposeType c : PurposeType.values()) {
+ if (c.value.equalsIgnoreCase(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v);
+ }
+
+}
diff --git a/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/QualityType.java b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/QualityType.java
new file mode 100644
index 000000000..b202ce800
--- /dev/null
+++ b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/QualityType.java
@@ -0,0 +1,114 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
+// See http://java.sun.com/xml/jaxb
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2019.05.13 at 03:22:53 PM IST
+//
+
+package io.mosip.registration.packetmanager.cbeffutil.jaxbclasses;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ *
+ * Java class for QualityType complex type.
+ *
+ *
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ *
+ *
+ * <complexType name="QualityType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="Algorithm" type="{http://standards.iso.org/iso-iec/19785/-3/ed-2/}RegistryIDType"/>
+ * <choice>
+ * <element name="Score" type="{http://standards.iso.org/iso-iec/19785/-3/ed-2/}QualityScoreType"/>
+ * <element name="QualityCalculationFailed" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * </choice>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ *
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "QualityType", propOrder = { "algorithm", "score", "qualityCalculationFailed" })
+public class QualityType {
+
+ @XmlElement(name = "Algorithm", required = true)
+ protected RegistryIDType algorithm;
+ @XmlElement(name = "Score")
+ @XmlSchemaType(name = "unsignedInt")
+ protected Long score;
+ @XmlElement(name = "QualityCalculationFailed")
+ protected String qualityCalculationFailed;
+
+ /**
+ * Gets the value of the algorithm property.
+ *
+ * @return possible object is {@link RegistryIDType }
+ *
+ */
+ public RegistryIDType getAlgorithm() {
+ return algorithm;
+ }
+
+ /**
+ * Sets the value of the algorithm property.
+ *
+ * @param value allowed object is {@link RegistryIDType }
+ *
+ */
+ public void setAlgorithm(RegistryIDType value) {
+ this.algorithm = value;
+ }
+
+ /**
+ * Gets the value of the score property.
+ *
+ * @return possible object is {@link Long }
+ *
+ */
+ public Long getScore() {
+ return score;
+ }
+
+ /**
+ * Sets the value of the score property.
+ *
+ * @param value allowed object is {@link Long }
+ *
+ */
+ public void setScore(Long value) {
+ this.score = value;
+ }
+
+ /**
+ * Gets the value of the qualityCalculationFailed property.
+ *
+ * @return possible object is {@link String }
+ *
+ */
+ public String getQualityCalculationFailed() {
+ return qualityCalculationFailed;
+ }
+
+ /**
+ * Sets the value of the qualityCalculationFailed property.
+ *
+ * @param value allowed object is {@link String }
+ *
+ */
+ public void setQualityCalculationFailed(String value) {
+ this.qualityCalculationFailed = value;
+ }
+
+}
diff --git a/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/RegistryIDType.java b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/RegistryIDType.java
new file mode 100644
index 000000000..15c2d1139
--- /dev/null
+++ b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/RegistryIDType.java
@@ -0,0 +1,87 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
+// See http://java.sun.com/xml/jaxb
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2019.05.13 at 03:22:53 PM IST
+//
+
+package io.mosip.registration.packetmanager.cbeffutil.jaxbclasses;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ *
+ * Java class for RegistryIDType complex type.
+ *
+ *
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ *
+ *
+ * <complexType name="RegistryIDType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="Organization" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * <element name="Type" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ *
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "RegistryIDType", propOrder = { "organization", "type" })
+public class RegistryIDType {
+
+ @XmlElement(name = "Organization", required = true)
+ protected String organization;
+ @XmlElement(name = "Type", required = true)
+ protected String type;
+
+ /**
+ * Gets the value of the organization property.
+ *
+ * @return possible object is {@link String }
+ *
+ */
+ public String getOrganization() {
+ return organization;
+ }
+
+ /**
+ * Sets the value of the organization property.
+ *
+ * @param value allowed object is {@link String }
+ *
+ */
+ public void setOrganization(String value) {
+ this.organization = value;
+ }
+
+ /**
+ * Gets the value of the type property.
+ *
+ * @return possible object is {@link String }
+ *
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * Sets the value of the type property.
+ *
+ * @param value allowed object is {@link String }
+ *
+ */
+ public void setType(String value) {
+ this.type = value;
+ }
+
+}
diff --git a/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/SBInfo.java b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/SBInfo.java
new file mode 100644
index 000000000..31817e5b7
--- /dev/null
+++ b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/SBInfo.java
@@ -0,0 +1,48 @@
+/**
+ *
+ */
+package io.mosip.registration.packetmanager.cbeffutil.jaxbclasses;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author Ramadurai Pandian
+ *
+ */
+@Data
+@NoArgsConstructor
+public class SBInfo {
+
+ private RegistryIDType format;
+
+ public SBInfo(SBInfoBuilder sBInfoBuilder) {
+ this.format = sBInfoBuilder.format;
+ }
+
+ public RegistryIDType getFormat() {
+ return format;
+ }
+
+ public static class SBInfoBuilder {
+ private RegistryIDType format;
+
+ public SBInfoBuilder setFormatOwner(RegistryIDType format) {
+ this.format = format;
+ return this;
+ }
+
+ public SBInfo build() {
+ return new SBInfo(this);
+ }
+ }
+
+ public SBInfoType toSBInfoType() {
+ SBInfoType sBInfoType = new SBInfoType();
+ if (getFormat() != null) {
+ sBInfoType.setFormat(getFormat());
+ }
+ return sBInfoType;
+ }
+
+}
diff --git a/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/SBInfoType.java b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/SBInfoType.java
new file mode 100644
index 000000000..cac1bb118
--- /dev/null
+++ b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/SBInfoType.java
@@ -0,0 +1,64 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
+// See http://java.sun.com/xml/jaxb
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2019.05.13 at 03:22:53 PM IST
+//
+
+package io.mosip.registration.packetmanager.cbeffutil.jaxbclasses;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ *
+ * Java class for SBInfoType complex type.
+ *
+ *
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ *
+ *
+ * <complexType name="SBInfoType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="Format" type="{http://standards.iso.org/iso-iec/19785/-3/ed-2/}RegistryIDType" minOccurs="0"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ *
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "SBInfoType", propOrder = { "format" })
+public class SBInfoType {
+
+ @XmlElement(name = "Format")
+ protected RegistryIDType format;
+
+ /**
+ * Gets the value of the format property.
+ *
+ * @return possible object is {@link RegistryIDType }
+ *
+ */
+ public RegistryIDType getFormat() {
+ return format;
+ }
+
+ /**
+ * Sets the value of the format property.
+ *
+ * @param value allowed object is {@link RegistryIDType }
+ *
+ */
+ public void setFormat(RegistryIDType value) {
+ this.format = value;
+ }
+
+}
diff --git a/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/SingleAnySubtypeType.java b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/SingleAnySubtypeType.java
new file mode 100644
index 000000000..3f174fe72
--- /dev/null
+++ b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/SingleAnySubtypeType.java
@@ -0,0 +1,70 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
+// See http://java.sun.com/xml/jaxb
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2019.05.13 at 03:22:53 PM IST
+//
+
+package io.mosip.registration.packetmanager.cbeffutil.jaxbclasses;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ *
+ * Java class for SingleAnySubtypeType.
+ *
+ *
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ *
+ *
+ *
+ * <simpleType name="SingleAnySubtypeType">
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * <enumeration value="Left"/>
+ * <enumeration value="Right"/>
+ * <enumeration value="Thumb"/>
+ * <enumeration value="IndexFinger"/>
+ * <enumeration value="MiddleFinger"/>
+ * <enumeration value="RingFinger"/>
+ * <enumeration value="LittleFinger"/>
+ * </restriction>
+ * </simpleType>
+ *
+ *
+ */
+@XmlType(name = "SingleAnySubtypeType")
+@XmlEnum
+public enum SingleAnySubtypeType {
+
+ @XmlEnumValue("Left")
+ LEFT("Left"), @XmlEnumValue("Right")
+ RIGHT("Right"), @XmlEnumValue("Thumb")
+ THUMB("Thumb"), @XmlEnumValue("IndexFinger")
+ INDEX_FINGER("IndexFinger"), @XmlEnumValue("MiddleFinger")
+ MIDDLE_FINGER("MiddleFinger"), @XmlEnumValue("RingFinger")
+ RING_FINGER("RingFinger"), @XmlEnumValue("LittleFinger")
+ LITTLE_FINGER("LittleFinger");
+
+ private final String value;
+
+ SingleAnySubtypeType(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ public static SingleAnySubtypeType fromValue(String v) {
+ for (SingleAnySubtypeType c : SingleAnySubtypeType.values()) {
+ if (c.value.equalsIgnoreCase(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v);
+ }
+
+}
diff --git a/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/SingleType.java b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/SingleType.java
new file mode 100644
index 000000000..f58197aff
--- /dev/null
+++ b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/SingleType.java
@@ -0,0 +1,88 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
+// See http://java.sun.com/xml/jaxb
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2019.05.13 at 03:22:53 PM IST
+//
+
+package io.mosip.registration.packetmanager.cbeffutil.jaxbclasses;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ *
+ * Java class for SingleTypeType.
+ *
+ *
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ *
+ *
+ *
+ * <simpleType name="SingleTypeType">
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * <enumeration value="Scent"/>
+ * <enumeration value="DNA"/>
+ * <enumeration value="Ear "/>
+ * <enumeration value="Face"/>
+ * <enumeration value="Finger"/>
+ * <enumeration value="Foot"/>
+ * <enumeration value="HandGeometry"/>
+ * <enumeration value="Vein"/>
+ * <enumeration value="Iris"/>
+ * <enumeration value="Retina"/>
+ * <enumeration value="Voice"/>
+ * <enumeration value="Gait"/>
+ * <enumeration value="Keystroke"/>
+ * <enumeration value="LipMovement"/>
+ * <enumeration value="SignatureSign"/>
+ * <enumeration value="Palm"/>
+ * <enumeration value="BackOfHand"/>
+ * <enumeration value="Wrist"/>
+ * </restriction>
+ * </simpleType>
+ *
+ *
+ */
+@XmlType(name = "SingleTypeType")
+@XmlEnum
+public enum SingleType {
+
+ @XmlEnumValue("Scent")
+ SCENT("Scent"), DNA("DNA"), @XmlEnumValue("Ear ")
+ EAR("Ear "), @XmlEnumValue("Face")
+ FACE("Face"), @XmlEnumValue("Finger")
+ FINGER("Finger"), @XmlEnumValue("Foot")
+ FOOT("Foot"), @XmlEnumValue("Vein")
+ VEIN("Vein"), @XmlEnumValue("HandGeometry")
+ HAND_GEOMETRY("HandGeometry"), @XmlEnumValue("Iris")
+ IRIS("Iris"), @XmlEnumValue("Retina")
+ RETINA("Retina"), @XmlEnumValue("Voice")
+ VOICE("Voice"), @XmlEnumValue("Gait")
+ GAIT("Gait"), @XmlEnumValue("Keystroke")
+ KEYSTROKE("Keystroke"), @XmlEnumValue("LipMovement")
+ LIP_MOVEMENT("LipMovement"), @XmlEnumValue("SignatureSign")
+ SIGNATURE_SIGN("SignatureSign");
+
+ private final String value;
+
+ SingleType(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ public static SingleType fromValue(String v) {
+ for (SingleType c : SingleType.values()) {
+ if (c.value.equalsIgnoreCase(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v);
+ }
+
+}
diff --git a/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/VersionType.java b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/VersionType.java
new file mode 100644
index 000000000..397c534d5
--- /dev/null
+++ b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/cbeffutil/jaxbclasses/VersionType.java
@@ -0,0 +1,82 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
+// See http://java.sun.com/xml/jaxb
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2019.05.13 at 03:22:53 PM IST
+//
+
+package io.mosip.registration.packetmanager.cbeffutil.jaxbclasses;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ *
+ * Java class for VersionType complex type.
+ *
+ *
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ *
+ *
+ * <complexType name="VersionType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="Major" type="{http://www.w3.org/2001/XMLSchema}unsignedInt"/>
+ * <element name="Minor" type="{http://www.w3.org/2001/XMLSchema}unsignedInt"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ *
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "VersionType", propOrder = { "major", "minor" })
+public class VersionType {
+
+ @XmlElement(name = "Major")
+ @XmlSchemaType(name = "unsignedInt")
+ protected long major;
+ @XmlElement(name = "Minor")
+ @XmlSchemaType(name = "unsignedInt")
+ protected long minor;
+
+ /**
+ * Gets the value of the major property.
+ *
+ */
+ public long getMajor() {
+ return major;
+ }
+
+ /**
+ * Sets the value of the major property.
+ *
+ */
+ public void setMajor(long value) {
+ this.major = value;
+ }
+
+ /**
+ * Gets the value of the minor property.
+ *
+ */
+ public long getMinor() {
+ return minor;
+ }
+
+ /**
+ * Sets the value of the minor property.
+ *
+ */
+ public void setMinor(long value) {
+ this.minor = value;
+ }
+
+}
diff --git a/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/BDBInfo.java b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/BDBInfo.java
new file mode 100644
index 000000000..1e407f7a1
--- /dev/null
+++ b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/BDBInfo.java
@@ -0,0 +1,205 @@
+/**
+ *
+ */
+package io.mosip.registration.packetmanager.dto.PacketWriter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+/**
+ * @author Ramadurai Pandian
+ *
+ */
+//@XmlAccessorType(XmlAccessType.FIELD)
+//@XmlType(name = "BDBInfoType", propOrder = { "challengeResponse", "index", "format", "encryption", "creationDate",
+// "notValidBefore", "notValidAfter", "type", "subtype", "level", "product", "captureDevice",
+// "featureExtractionAlgorithm", "comparisonAlgorithm", "compressionAlgorithm", "purpose", "quality" })
+@Data
+@NoArgsConstructor
+//@JsonDeserialize(builder = BDBInfo.BDBInfoBuilder.class)
+public class BDBInfo implements Serializable {
+
+ //@XmlElement(name = "ChallengeResponse")
+ private byte[] challengeResponse;
+ //@XmlElement(name = "Index")
+ private String index;
+ //@XmlElement(name = "Format")
+ private RegistryIDType format;
+ //@XmlElement(name = "Encryption")
+ private Boolean encryption;
+// @XmlElement(name = "CreationDate")
+// @XmlSchemaType(name = "dateTime")
+// @XmlJavaTypeAdapter(DateAdapter.class)
+ private LocalDateTime creationDate;
+// @XmlElement(name = "NotValidBefore")
+// @XmlSchemaType(name = "dateTime")
+// @XmlJavaTypeAdapter(DateAdapter.class)
+ private LocalDateTime notValidBefore;
+// @XmlElement(name = "NotValidAfter")
+// @XmlSchemaType(name = "dateTime")
+// @XmlJavaTypeAdapter(DateAdapter.class)
+ private LocalDateTime notValidAfter;
+// @XmlList
+// @XmlElement(name = "Type")
+ private List type;
+ //@XmlList
+ //@XmlElement(name = "Subtype")
+ private List subtype;
+ //@XmlElement(name = "Level")
+ //@XmlSchemaType(name = "string")
+ private ProcessedLevelType level;
+ //@XmlElement(name = "Product")
+ private RegistryIDType product;
+ //@XmlElement(name = "CaptureDevice")
+ private RegistryIDType captureDevice;
+ //@XmlElement(name = "FeatureExtractionAlgorithm")
+ private RegistryIDType featureExtractionAlgorithm;
+ //@XmlElement(name = "ComparisonAlgorithm")
+ private RegistryIDType comparisonAlgorithm;
+ //@XmlElement(name = "CompressionAlgorithm")
+ private RegistryIDType compressionAlgorithm;
+ //@XmlElement(name = "Purpose")
+ //@XmlSchemaType(name = "string")
+ private PurposeType purpose;
+ //@XmlElement(name = "Quality")
+ private QualityType quality;
+
+
+
+
+
+ public BDBInfo(BDBInfoBuilder bDBInfoBuilder) {
+ this.challengeResponse = bDBInfoBuilder.challengeResponse;
+ this.index = bDBInfoBuilder.index;
+ this.format = bDBInfoBuilder.format;
+ this.encryption = bDBInfoBuilder.encryption;
+ this.creationDate = bDBInfoBuilder.creationDate;
+ this.notValidBefore = bDBInfoBuilder.notValidBefore;
+ this.notValidAfter = bDBInfoBuilder.notValidAfter;
+ this.type = bDBInfoBuilder.type;
+ this.subtype = bDBInfoBuilder.subtype;
+ this.level = bDBInfoBuilder.level;
+ this.product = bDBInfoBuilder.product;
+ this.purpose = bDBInfoBuilder.purpose;
+ this.quality = bDBInfoBuilder.quality;
+ this.captureDevice = bDBInfoBuilder.captureDevice;
+ this.featureExtractionAlgorithm = bDBInfoBuilder.featureExtractionAlgorithm;
+ this.comparisonAlgorithm = bDBInfoBuilder.comparisonAlgorithm;
+ this.compressionAlgorithm = bDBInfoBuilder.compressionAlgorithm;
+ }
+
+
+ public static class BDBInfoBuilder {
+ private byte[] challengeResponse;
+ private String index;
+ private RegistryIDType format;
+ private Boolean encryption;
+ private LocalDateTime creationDate;
+ private LocalDateTime notValidBefore;
+ private LocalDateTime notValidAfter;
+ private List type;
+ private List subtype;
+ private ProcessedLevelType level;
+ private RegistryIDType product;
+ private PurposeType purpose;
+ private QualityType quality;
+ private RegistryIDType captureDevice;
+ private RegistryIDType featureExtractionAlgorithm;
+ private RegistryIDType comparisonAlgorithm;
+ private RegistryIDType compressionAlgorithm;
+
+ public BDBInfoBuilder withChallengeResponse(byte[] challengeResponse) {
+ this.challengeResponse = challengeResponse;
+ return this;
+ }
+
+ public BDBInfoBuilder withIndex(String index) {
+ this.index = index;
+ return this;
+ }
+
+ public BDBInfoBuilder withFormat(RegistryIDType format) {
+ this.format = format;
+ return this;
+ }
+
+ public BDBInfoBuilder withEncryption(Boolean encryption) {
+ this.encryption = encryption;
+ return this;
+ }
+
+ public BDBInfoBuilder withCreationDate(LocalDateTime creationDate) {
+ this.creationDate = creationDate;
+ return this;
+ }
+
+ public BDBInfoBuilder withNotValidBefore(LocalDateTime notValidBefore) {
+ this.notValidBefore = notValidBefore;
+ return this;
+ }
+
+ public BDBInfoBuilder withNotValidAfter(LocalDateTime notValidAfter) {
+ this.notValidAfter = notValidAfter;
+ return this;
+ }
+
+ public BDBInfoBuilder withType(List type) {
+ this.type = type;
+ return this;
+ }
+
+ public BDBInfoBuilder withSubtype(List subtype) {
+ this.subtype = subtype;
+ return this;
+ }
+
+ public BDBInfoBuilder withLevel(ProcessedLevelType level) {
+ this.level = level;
+ return this;
+ }
+
+ public BDBInfoBuilder withProduct(RegistryIDType product) {
+ this.product = product;
+ return this;
+ }
+
+ public BDBInfoBuilder withPurpose(PurposeType purpose) {
+ this.purpose = purpose;
+ return this;
+ }
+
+ public BDBInfoBuilder withQuality(QualityType quality) {
+ this.quality = quality;
+ return this;
+ }
+
+ public BDBInfo build() {
+ return new BDBInfo(this);
+ }
+
+ public BDBInfoBuilder withCaptureDevice(RegistryIDType captureDevice) {
+ this.captureDevice = captureDevice;
+ return this;
+ }
+
+ public BDBInfoBuilder withFeatureExtractionAlgorithm(RegistryIDType featureExtractionAlgorithm) {
+ this.featureExtractionAlgorithm = featureExtractionAlgorithm;
+ return this;
+ }
+
+ public BDBInfoBuilder withComparisonAlgorithm(RegistryIDType comparisonAlgorithm) {
+ this.comparisonAlgorithm = comparisonAlgorithm;
+ return this;
+ }
+
+ public BDBInfoBuilder withCompressionAlgorithm(RegistryIDType compressionAlgorithm) {
+ this.compressionAlgorithm = compressionAlgorithm;
+ return this;
+ }
+ }
+}
diff --git a/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/BIR.java b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/BIR.java
new file mode 100644
index 000000000..041224d73
--- /dev/null
+++ b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/BIR.java
@@ -0,0 +1,134 @@
+package io.mosip.registration.packetmanager.dto.PacketWriter;
+
+//import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+//import io.mosip.kernel.core.cbeffutil.common.Base64Adapter;
+//import lombok.Data;
+//import lombok.NoArgsConstructor;
+
+//import javax.xml.bind.annotation.*;
+//import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+/**
+ *
+ * BIR class with Builder to create data
+ *
+ * @author Ramadurai Pandian
+ *
+ */
+//@XmlAccessorType(XmlAccessType.FIELD)
+//@XmlType(name = "BIRType", propOrder = { "version", "cbeffversion", "birInfo", "bdbInfo", "bdb",
+// "sb" ,"birs","sbInfo","others"})
+//@XmlRootElement(name = "BIR")
+@Data
+@NoArgsConstructor
+public class BIR implements Serializable {
+
+ //@XmlElement(name = "Version")
+ private VersionType version;
+ //@XmlElement(name = "CBEFFVersion")
+ private VersionType cbeffversion;
+ //@XmlElement(name = "BIRInfo", required = true)
+ private BIRInfo birInfo;
+ //@XmlElement(name = "BDBInfo")
+ private BDBInfo bdbInfo;
+ //@XmlElement(name = "BDB")
+ //@XmlJavaTypeAdapter(Base64Adapter.class)
+ private byte[] bdb;
+ //@XmlElement(name = "SB")
+ //@XmlJavaTypeAdapter(Base64Adapter.class)
+ private byte[] sb;
+ //@XmlElement(name = "BIR")
+ protected List birs;
+ //@XmlElement(name = "SBInfo")
+ private SBInfo sbInfo;
+ //@XmlElement(name = "Others")
+ private List others;
+
+ public BIR(BIRBuilder birBuilder) {
+ this.version = birBuilder.version;
+ this.cbeffversion = birBuilder.cbeffversion;
+ this.birInfo = birBuilder.birInfo;
+ this.bdbInfo = birBuilder.bdbInfo;
+ this.bdb = birBuilder.bdb;
+ this.sb = birBuilder.sb;
+ this.sbInfo = birBuilder.sbInfo;
+ this.others = birBuilder.others;
+ }
+
+ public static class BIRBuilder {
+ private VersionType version;
+ private VersionType cbeffversion;
+ private BIRInfo birInfo;
+ private BDBInfo bdbInfo;
+ private byte[] bdb;
+ private byte[] sb;
+ private SBInfo sbInfo;
+ private List others;
+
+ public BIRBuilder withOthers(List others) {
+ if(Objects.isNull(others))
+ this.others = new ArrayList<>();
+ else
+ this.others = others;
+ return this;
+ }
+
+ /*public BIRBuilder withOthers(Map others) {
+ if(Objects.isNull(this.others))
+ this.others = new HashMap<>();
+ if(!Objects.isNull(others))
+ this.others.putAll(others);
+ return this;
+ }*/
+
+ public BIRBuilder withVersion(VersionType version) {
+ this.version = version;
+ return this;
+ }
+
+ public BIRBuilder withCbeffversion(VersionType cbeffversion) {
+ this.cbeffversion = cbeffversion;
+ return this;
+ }
+
+ public BIRBuilder withBirInfo(BIRInfo birInfo) {
+ this.birInfo = birInfo;
+ return this;
+ }
+
+ public BIRBuilder withBdbInfo(BDBInfo bdbInfo) {
+ this.bdbInfo = bdbInfo;
+ return this;
+ }
+
+ public BIRBuilder withBdb(byte[] bdb) {
+ this.bdb = bdb;
+ return this;
+ }
+
+ public BIRBuilder withSb(byte[] sb) {
+ this.sb = sb == null ? new byte[0] : sb;
+ return this;
+ }
+
+ public BIRBuilder withSbInfo(SBInfo sbInfo) {
+ this.sbInfo = sbInfo;
+ return this;
+ }
+
+ public BIR build() {
+ return new BIR(this);
+ }
+
+ }
+
+}
diff --git a/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/BIRInfo.java b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/BIRInfo.java
new file mode 100644
index 000000000..38cea450e
--- /dev/null
+++ b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/BIRInfo.java
@@ -0,0 +1,117 @@
+/**
+ *
+ */
+package io.mosip.registration.packetmanager.dto.PacketWriter;
+
+//import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+//import io.mosip.kernel.core.cbeffutil.common.DateAdapter;
+//import lombok.Data;
+//import lombok.NoArgsConstructor;
+
+//import javax.xml.bind.annotation.*;
+//import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author Ramadurai Pandian
+ *
+ */
+//@XmlAccessorType(XmlAccessType.FIELD)
+//@XmlType(name = "BIRInfoType", propOrder = { "creator", "index", "payload", "integrity", "creationDate",
+// "notValidBefore", "notValidAfter" })
+@Data
+@NoArgsConstructor
+//@JsonDeserialize(builder = BIRInfo.BIRInfoBuilder.class)
+public class BIRInfo implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -2466414332099574792L;
+ //@XmlElement(name = "Creator")
+ private String creator;
+ //@XmlElement(name = "Index")
+ private String index;
+ //@XmlElement(name = "Payload")
+ private byte[] payload;
+ //@XmlElement(name = "Integrity")
+ private Boolean integrity;
+ //@XmlElement(name = "CreationDate")
+ //@XmlSchemaType(name = "dateTime")
+ //@XmlJavaTypeAdapter(DateAdapter.class)
+ private LocalDateTime creationDate;
+ //@XmlElement(name = "NotValidBefore")
+ //@XmlSchemaType(name = "dateTime")
+ //@XmlJavaTypeAdapter(DateAdapter.class)
+ private LocalDateTime notValidBefore;
+ //@XmlElement(name = "NotValidAfter")
+ //@XmlSchemaType(name = "dateTime")
+ //@XmlJavaTypeAdapter(DateAdapter.class)
+ private LocalDateTime notValidAfter;
+
+
+ public BIRInfo(BIRInfoBuilder bIRInfoBuilder) {
+ this.creator = bIRInfoBuilder.creator;
+ this.index = bIRInfoBuilder.index;
+ this.payload = bIRInfoBuilder.payload;
+ this.integrity = bIRInfoBuilder.integrity;
+ this.creationDate = bIRInfoBuilder.creationDate;
+ this.notValidBefore = bIRInfoBuilder.notValidBefore;
+ this.notValidAfter = bIRInfoBuilder.notValidAfter;
+ }
+
+ public static class BIRInfoBuilder {
+ private String creator;
+ private String index;
+ private byte[] payload;
+ private Boolean integrity;
+ private LocalDateTime creationDate;
+ private LocalDateTime notValidBefore;
+ private LocalDateTime notValidAfter;
+
+ public BIRInfoBuilder withCreator(String creator) {
+ this.creator = creator;
+ return this;
+ }
+
+ public BIRInfoBuilder withIndex(String index) {
+ this.index = index;
+ return this;
+ }
+
+ public BIRInfoBuilder withPayload(byte[] payload) {
+ this.payload = payload;
+ return this;
+ }
+
+ public BIRInfoBuilder withIntegrity(Boolean integrity) {
+ this.integrity = integrity;
+ return this;
+ }
+
+ public BIRInfoBuilder withCreationDate(LocalDateTime creationDate) {
+ this.creationDate = creationDate;
+ return this;
+ }
+
+ public BIRInfoBuilder withNotValidBefore(LocalDateTime notValidBefore) {
+ this.notValidBefore = notValidBefore;
+ return this;
+ }
+
+ public BIRInfoBuilder withNotValidAfter(LocalDateTime notValidAfter) {
+ this.notValidAfter = notValidAfter;
+ return this;
+ }
+
+ public BIRInfo build() {
+ return new BIRInfo(this);
+ }
+
+ }
+}
diff --git a/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/BiometricRecord.java b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/BiometricRecord.java
new file mode 100644
index 000000000..9322a9a23
--- /dev/null
+++ b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/BiometricRecord.java
@@ -0,0 +1,49 @@
+/**
+ *
+ */
+package io.mosip.registration.packetmanager.dto.PacketWriter;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import lombok.Data;
+
+
+/**
+ *
+ * BIR class with Builder to create data
+ *
+ * @author Ramadurai Pandian
+ *
+ */
+
+@Data
+public class BiometricRecord implements Serializable {
+
+ protected VersionType version;
+ protected VersionType cbeffversion;
+ protected BIRInfo birInfo;
+ /**
+ * This can be of any modality, each subtype is an element in this list.
+ * it has type and subtype info in it
+ */
+ protected List segments;
+ protected Map others;
+
+ public BiometricRecord() {
+ this.segments = new ArrayList<>();
+ this.others = new HashMap<>();
+ }
+
+ public BiometricRecord(VersionType version, VersionType cbeffversion, BIRInfo birInfo) {
+ this.version = version;
+ this.cbeffversion = cbeffversion;
+ this.birInfo = birInfo;
+ this.segments = new ArrayList();
+ this.others = new HashMap<>();
+ }
+
+}
diff --git a/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/BiometricType.java b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/BiometricType.java
new file mode 100644
index 000000000..2974044f3
--- /dev/null
+++ b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/BiometricType.java
@@ -0,0 +1,68 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
+// See http://java.sun.com/xml/jaxb
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2019.05.13 at 03:22:53 PM IST
+//
+
+package io.mosip.registration.packetmanager.dto.PacketWriter;
+
+
+//import javax.xml.bind.annotation.XmlEnum;
+//import javax.xml.bind.annotation.XmlEnumValue;
+//import javax.xml.bind.annotation.XmlType;
+import java.io.Serializable;
+
+public enum BiometricType implements Serializable {
+
+ //@XmlEnumValue("Scent")
+ SCENT("Scent"),
+ //@XmlEnumValue("Dna")
+ DNA("DNA"),
+ //@XmlEnumValue("Dna")
+ EAR("Ear "),
+ //@XmlEnumValue("Face")
+ FACE("Face"),
+ //@XmlEnumValue("Finger")
+ FINGER("Finger"),
+ //@XmlEnumValue("Foot")
+ FOOT("Foot"),
+ //@XmlEnumValue("Vein")
+ VEIN("Vein"),
+ //@XmlEnumValue("HandGeometry")
+ HAND_GEOMETRY("HandGeometry"),
+ //@XmlEnumValue("Iris")
+ IRIS("Iris"),
+ //@XmlEnumValue("Retina")
+ RETINA("Retina"),
+ //@XmlEnumValue("Voice")
+ VOICE("Voice"),
+ //@XmlEnumValue("Gait")
+ GAIT("Gait"),
+ //@XmlEnumValue("Keystroke")
+ KEYSTROKE("Keystroke"),
+ //@XmlEnumValue("LipMovement")
+ LIP_MOVEMENT("LipMovement"),
+// @XmlEnumValue("SignatureSign")
+ SIGNATURE_SIGN("SignatureSign");
+
+ private final String value;
+
+ BiometricType(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ public static BiometricType fromValue(String v) {
+ for (BiometricType c : BiometricType.values()) {
+ if (c.value.equalsIgnoreCase(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v);
+ }
+
+}
diff --git a/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/BiometricsType.java b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/BiometricsType.java
new file mode 100644
index 000000000..8333c3c36
--- /dev/null
+++ b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/BiometricsType.java
@@ -0,0 +1,14 @@
+package io.mosip.registration.packetmanager.dto.PacketWriter;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+@Data
+@AllArgsConstructor
+public class BiometricsType {
+
+ private String format;
+ private double version;
+ private String value;
+
+}
diff --git a/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/Document.java b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/Document.java
new file mode 100644
index 000000000..29257083c
--- /dev/null
+++ b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/Document.java
@@ -0,0 +1,15 @@
+package io.mosip.registration.packetmanager.dto.PacketWriter;
+
+import java.io.Serializable;
+
+import lombok.Data;
+
+@Data
+public class Document implements Serializable {
+
+ private byte[] document;
+ private String value;
+ private String type;
+ private String format;
+ private String refNumber;
+}
diff --git a/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/DocumentType.java b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/DocumentType.java
new file mode 100644
index 000000000..952fb921a
--- /dev/null
+++ b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/DocumentType.java
@@ -0,0 +1,14 @@
+package io.mosip.registration.packetmanager.dto.PacketWriter;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+@Data
+@AllArgsConstructor
+public class DocumentType {
+
+ private String value;
+ private String type;
+ private String format;
+
+}
diff --git a/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/Entry.java b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/Entry.java
new file mode 100644
index 000000000..3b2b54552
--- /dev/null
+++ b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/Entry.java
@@ -0,0 +1,50 @@
+package io.mosip.registration.packetmanager.dto.PacketWriter;
+
+
+//import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+//import lombok.AllArgsConstructor;
+//import lombok.Data;
+//import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+//@XmlAccessorType(XmlAccessType.FIELD)
+//@XmlType(name = "Entry", propOrder = { "key", "value" })
+//@NoArgsConstructor
+//@JsonDeserialize(builder = Entry.EntryBuilder.class)
+@Data
+@AllArgsConstructor
+public class Entry implements Serializable {
+
+ //@XmlElement(name = "Key")
+ protected String key;
+ //@XmlElement(name = "Value")
+ protected String value;
+
+ public Entry(EntryBuilder entryBuilder) {
+ this.key = entryBuilder.key;
+ this.value = entryBuilder.value;
+ }
+
+ public static class EntryBuilder {
+ private String key;
+ private String value;
+
+ public EntryBuilder withKey(String key) {
+ this.key = key;
+ return this;
+ }
+
+ public EntryBuilder withValue(String value) {
+ this.value = value;
+ return this;
+ }
+
+ public Entry build() {
+ return new Entry(this);
+ }
+ }
+}
diff --git a/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/HashSequenceMetaInfo.java b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/HashSequenceMetaInfo.java
new file mode 100644
index 000000000..205f1ea7d
--- /dev/null
+++ b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/HashSequenceMetaInfo.java
@@ -0,0 +1,30 @@
+package io.mosip.registration.packetmanager.dto.PacketWriter;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+@Data
+public class HashSequenceMetaInfo {
+
+ public HashSequenceMetaInfo(String label) {
+ this.label = label;
+ this.value = new LinkedList();
+ this.hashSource = new HashMap<>();
+ }
+
+ private String label;
+ private List value;
+
+ @JsonIgnore
+ private Map hashSource;
+
+ public void addHashSource(String key, byte[] bytes) {
+ value.add(key);
+ hashSource.put(key, bytes);
+ }
+}
diff --git a/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/Packet.java b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/Packet.java
new file mode 100644
index 000000000..0fc9d2e43
--- /dev/null
+++ b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/Packet.java
@@ -0,0 +1,12 @@
+package io.mosip.registration.packetmanager.dto.PacketWriter;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+@Data
+@EqualsAndHashCode
+public class Packet {
+
+ private PacketInfo packetInfo;
+ private byte[] packet;
+}
diff --git a/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/PacketInfo.java b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/PacketInfo.java
new file mode 100644
index 000000000..73c565a0b
--- /dev/null
+++ b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/PacketInfo.java
@@ -0,0 +1,20 @@
+package io.mosip.registration.packetmanager.dto.PacketWriter;
+
+import java.io.Serializable;
+
+import lombok.Data;
+
+@Data
+public class PacketInfo implements Serializable {
+
+ private String id;
+ private String packetName;
+ private String source;
+ private String process;
+ private String schemaVersion;
+ private String signature;
+ private String encryptedHash;
+ private String providerName;
+ private String providerVersion;
+ private String creationDate;
+}
diff --git a/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/ProcessedLevelType.java b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/ProcessedLevelType.java
new file mode 100644
index 000000000..30be84e52
--- /dev/null
+++ b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/ProcessedLevelType.java
@@ -0,0 +1,46 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
+// See http://java.sun.com/xml/jaxb
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2019.05.13 at 03:22:53 PM IST
+//
+
+package io.mosip.registration.packetmanager.dto.PacketWriter;
+
+
+//import javax.xml.bind.annotation.XmlEnum;
+//import javax.xml.bind.annotation.XmlEnumValue;
+//import javax.xml.bind.annotation.XmlType;
+import java.io.Serializable;
+
+//@XmlType(name = "ProcessedLevelType")
+//@XmlEnum
+public enum ProcessedLevelType implements Serializable {
+
+ //@XmlEnumValue("Raw")
+ RAW("Raw"),
+ //@XmlEnumValue("Intermediate")
+ INTERMEDIATE("Intermediate"),
+ //@XmlEnumValue("Processed")
+ PROCESSED("Processed");
+
+ private final String value;
+
+ ProcessedLevelType(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ public static ProcessedLevelType fromValue(String v) {
+ for (ProcessedLevelType c : ProcessedLevelType.values()) {
+ if (c.value.equalsIgnoreCase(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v);
+ }
+
+}
diff --git a/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/PurposeType.java b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/PurposeType.java
new file mode 100644
index 000000000..1f4a34cd0
--- /dev/null
+++ b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/PurposeType.java
@@ -0,0 +1,51 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
+// See http://java.sun.com/xml/jaxb
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2019.05.13 at 03:22:53 PM IST
+//
+
+package io.mosip.registration.packetmanager.dto.PacketWriter;
+
+//import javax.xml.bind.annotation.XmlEnum;
+//import javax.xml.bind.annotation.XmlEnumValue;
+//import javax.xml.bind.annotation.XmlType;
+import java.io.Serializable;
+
+//@XmlType(name = "PurposeType")
+//@XmlEnum
+public enum PurposeType implements Serializable {
+
+ //@XmlEnumValue("Verify")
+ VERIFY("Verify"),
+ //@XmlEnumValue("Identify")
+ IDENTIFY("Identify"),
+ //@XmlEnumValue("Enroll")
+ ENROLL("Enroll"),
+ //@XmlEnumValue("EnrollVerify")
+ ENROLLVERIFY("EnrollVerify"),
+ //@XmlEnumValue("EnrollIdentify")
+ ENROLLIDENTIFY("EnrollIdentify"),
+ //@XmlEnumValue("Audit")
+ AUDIT("Audit");
+
+ private final String value;
+
+ PurposeType(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ public static PurposeType fromValue(String v) {
+ for (PurposeType c : PurposeType.values()) {
+ if (c.value.equalsIgnoreCase(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v);
+ }
+
+}
diff --git a/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/QualityType.java b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/QualityType.java
new file mode 100644
index 000000000..3990deeda
--- /dev/null
+++ b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/QualityType.java
@@ -0,0 +1,35 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
+// See http://java.sun.com/xml/jaxb
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2019.05.13 at 03:22:53 PM IST
+//
+
+package io.mosip.registration.packetmanager.dto.PacketWriter;
+
+//import io.mosip.kernel.biometrics.entities.RegistryIDType;
+//import lombok.AllArgsConstructor;
+//import lombok.Data;
+//import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+//@XmlAccessorType(XmlAccessType.FIELD)
+//@XmlType(name = "QualityType", propOrder = { "algorithm", "score", "qualityCalculationFailed" })
+@Data
+@NoArgsConstructor
+//@AllArgsConstructor
+public class QualityType implements Serializable {
+
+ //@XmlElement(name = "Algorithm", required = true)
+ protected RegistryIDType algorithm;
+ //@XmlElement(name = "Score")
+ //@XmlSchemaType(name = "unsignedInt")
+ protected Long score;
+ //@XmlElement(name = "QualityCalculationFailed")
+ protected String qualityCalculationFailed;
+
+}
diff --git a/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/RegistrationPacket.java b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/RegistrationPacket.java
new file mode 100644
index 000000000..3b6210920
--- /dev/null
+++ b/client/packetmanager/src/main/java/io/mosip/registration/packetmanager/dto/PacketWriter/RegistrationPacket.java
@@ -0,0 +1,103 @@
+package io.mosip.registration.packetmanager.dto.PacketWriter;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import org.json.JSONArray;
+import org.json.JSONObject;
+import org.json.JSONTokener;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import lombok.Data;
+
+
+@Data
+public class RegistrationPacket {
+
+ private String registrationId;
+ private double idSchemaVersion;
+ private String creationDate;
+ private Map demographics;
+ private Map documents;
+ private Map biometrics;
+ private Map metaData;
+ private List