// Path: src/main/java/de/fesere/hypermedia/cj/exceptions/MalformedDataValueException.java
// public class MalformedDataValueException extends RuntimeException {
// 
//     public MalformedDataValueException(String message) {
//         super(message);
//     }
// }
// 
// Path: src/main/java/de/fesere/hypermedia/cj/exceptions/SerializationException.java
// public class SerializationException extends RuntimeException {
// 
//     public SerializationException(String message) {
//         super(message);
//     }
// 
//     public SerializationException(String message, Throwable cause) {
//         super(message, cause);
//     }
// }
// 
// Path: src/main/java/de/fesere/hypermedia/cj/model/DataEntry.java
// public interface DataEntry<T> {
//     String getName();
// 
//     String getPrompt();
// 
//     T getValue();
// 
//     String buildQueryRepresentation();
// }


import de.fesere.hypermedia.cj.exceptions.MalformedDataValueException;
import de.fesere.hypermedia.cj.exceptions.SerializationException;
import de.fesere.hypermedia.cj.model.DataEntry;
import de.fesere.hypermedia.cj.model.data.*;
import org.apache.commons.lang3.StringUtils;
package de.fesere.hypermedia.cj.model.builder;


public final class DataEntryFactory {

    public static DataEntry create(String name, Object value, String prompt) {

        if(StringUtils.isBlank(name)){
            return createNone();
        }

        if(value == null) {
// Path: src/main/java/de/fesere/hypermedia/cj/exceptions/MalformedDataValueException.java
// public class MalformedDataValueException extends RuntimeException {
// 
//     public MalformedDataValueException(String message) {
//         super(message);
//     }
// }
// 
// Path: src/main/java/de/fesere/hypermedia/cj/exceptions/SerializationException.java
// public class SerializationException extends RuntimeException {
// 
//     public SerializationException(String message) {
//         super(message);
//     }
// 
//     public SerializationException(String message, Throwable cause) {
//         super(message, cause);
//     }
// }
// 
// 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/DataEntryFactory.java
import de.fesere.hypermedia.cj.exceptions.MalformedDataValueException;
import de.fesere.hypermedia.cj.exceptions.SerializationException;
import de.fesere.hypermedia.cj.model.DataEntry;
import de.fesere.hypermedia.cj.model.data.*;
import org.apache.commons.lang3.StringUtils;

package de.fesere.hypermedia.cj.model.builder;


public final class DataEntryFactory {

    public static DataEntry create(String name, Object value, String prompt) {

        if(StringUtils.isBlank(name)){
            return createNone();
        }

        if(value == null) {
           throw new MalformedDataValueException("value of '"+name+"' can not be null");