Summary Table

Categories Total Count
PII 0
URL 0
DNS 0
EKL 0
IP 0
PORT 0
VsID 0
CF 0
AI 0
VPD 0
PL 0
Other 0

File Content

/*
* SeocListSerializer.java
* Copyright (c) 2017 Veterans Affairs.
*/
package gov.va.oneconsult.seoc.api.serializer;

import java.text.SimpleDateFormat;
import java.io.IOException;
import java.util.Set;

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;

import gov.va.oneconsult.seoc.api.model.Seoc;
import gov.va.oneconsult.seoc.api.util.ApiUtil;
import gov.va.security.util.DataSanitizer;

/**
* Description: Serialize Collection of Seoc object.
*
* @author AbleVets
*/
@SuppressWarnings("serial")
public class SeocListSerializer extends StdSerializer<Set<Seoc>> {
private DataSanitizer ds = new DataSanitizer();
private SimpleDateFormat formatter = new SimpleDateFormat("MM-dd-yyyy");

/**
* Description: Parameterized Constructor
*
* @param t
*/
protected SeocListSerializer(Class<Set<Seoc>> t) {

super(t);
}

/**
* Description: Default Constructor
*/
public SeocListSerializer() {

this(null);
}

/**
* {@inheritDoc}
*/
@Override
public void serialize(Set<Seoc> seocSet, JsonGenerator jgen, SerializerProvider sp) throws IOException {
jgen.writeStartObject();
jgen.writeArrayFieldStart("Seocs");

for (Seoc seoc : seocSet) {
String effectiveDate = null;
String endDate = null;

jgen.writeStartObject();
jgen.writeObjectFieldStart("Seoc");
jgen.writeNumberField("id", seoc.getId());
jgen.writeNumberField("seocKey", seoc.getSeocKey());
jgen.writeStringField("serviceLine", seoc.getServiceLineDescription());
jgen.writeStringField("name", ds.sanitizeOutputData(seoc.getName()));
jgen.writeStringField("seocId", ds.sanitizeOutputData(seoc.getSeocId()));
jgen.writeStringField("versionNumber", seoc.getVersionNumber());
if (seoc.getEffectiveDate() != null) {
effectiveDate = ApiUtil.formatDateToString(formatter, seoc.getEffectiveDate());
}
jgen.writeStringField("effectiveDate", effectiveDate);

if (seoc.getEndDate() != null) {
endDate = ApiUtil.formatDateToString(formatter, seoc.getEndDate());
}
jgen.writeStringField("endDate", endDate);
jgen.writeStringField("status", seoc.getStatusDescription());
jgen.writeEndObject();
jgen.writeEndObject();
}

jgen.writeEndArray();
jgen.writeEndObject();
}

}