// Path: src/main/java/de/fesere/hypermedia/cj/model/DataEntry.java
// public interface DataEntry<T> {
//     String getName();
// 
//     String getPrompt();
// 
//     T getValue();
// 
//     String buildQueryRepresentation();
// }
// 
// Path: src/main/java/de/fesere/hypermedia/cj/model/builder/DataEntryBuilder.java
// public class DataEntryBuilder {
// 
//     private String name;
//     private String prompt = null;
//     private boolean writeNullValue = false;
// 
//     private Object value;
// 
//     public DataEntryBuilder setName(String name) {
//         this.name = name;
//         return this;
//     }
// 
//     public DataEntryBuilder setValue(Object value) {
//         this.value = value;
//         return this;
//     }
// 
//     public DataEntryBuilder setNullValue() {
//         writeNullValue = true;
//         return this;
//     }
// 
//     public DataEntryBuilder setPrompt(String prompt) {
//         this.prompt = prompt;
//         return this;
//     }
// 
//     public DataEntry build() {
//         if(writeNullValue) {
//             return DataEntryFactory.createNull(name, prompt);
//         }
// 
//         if(value == null) {
//             return DataEntryFactory.create(name, "", prompt);
//         }
// 
//         return DataEntryFactory.create(name, value, prompt);
// 
//     }
// }


import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import de.fesere.hypermedia.cj.model.DataEntry;
import de.fesere.hypermedia.cj.model.builder.DataEntryBuilder;
import java.io.IOException;
import static com.fasterxml.jackson.core.JsonToken.*;
package de.fesere.hypermedia.cj.serialization;




public class DataEntryDeserializer extends StdDeserializer<DataEntry> {

    public DataEntryDeserializer() {
        super(DataEntry.class);
    }

    @Override
    public DataEntry deserialize(JsonParser jParser, DeserializationContext ctxt) throws IOException {
        DataEntryBuilder builder = new DataEntryBuilder();

// Path: src/main/java/de/fesere/hypermedia/cj/model/DataEntry.java
// public interface DataEntry<T> {
//     String getName();
// 
//     String getPrompt();
// 
//     T getValue();
// 
//     String buildQueryRepresentation();
// }
// 
// Path: src/main/java/de/fesere/hypermedia/cj/model/builder/DataEntryBuilder.java
// public class DataEntryBuilder {
// 
//     private String name;
//     private String prompt = null;
//     private boolean writeNullValue = false;
// 
//     private Object value;
// 
//     public DataEntryBuilder setName(String name) {
//         this.name = name;
//         return this;
//     }
// 
//     public DataEntryBuilder setValue(Object value) {
//         this.value = value;
//         return this;
//     }
// 
//     public DataEntryBuilder setNullValue() {
//         writeNullValue = true;
//         return this;
//     }
// 
//     public DataEntryBuilder setPrompt(String prompt) {
//         this.prompt = prompt;
//         return this;
//     }
// 
//     public DataEntry build() {
//         if(writeNullValue) {
//             return DataEntryFactory.createNull(name, prompt);
//         }
// 
//         if(value == null) {
//             return DataEntryFactory.create(name, "", prompt);
//         }
// 
//         return DataEntryFactory.create(name, value, prompt);
// 
//     }
// }


// Path: src/main/java/de/fesere/hypermedia/cj/serialization/DataEntryDeserializer.java
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import de.fesere.hypermedia.cj.model.DataEntry;
import de.fesere.hypermedia.cj.model.builder.DataEntryBuilder;
import java.io.IOException;
import static com.fasterxml.jackson.core.JsonToken.*;

package de.fesere.hypermedia.cj.serialization;




public class DataEntryDeserializer extends StdDeserializer<DataEntry> {

    public DataEntryDeserializer() {
        super(DataEntry.class);
    }

    @Override
    public DataEntry deserialize(JsonParser jParser, DeserializationContext ctxt) throws IOException {
        DataEntryBuilder builder = new DataEntryBuilder();

        while (jParser.nextToken() != END_OBJECT) {