All Downloads are FREE. Search and download functionalities are using the official Maven repository.

data.DataType Maven / Gradle / Ivy

package data;

import java.time.LocalDateTime;
import java.time.OffsetDateTime;
import java.time.format.DateTimeParseException;
import java.util.*;

/**
 * A set of basic data types.
 */
enum DataType {

  BOOLEAN("Boolean") {
    @Override
    public Boolean convert(String s) {
      return Boolean.parseBoolean(s);
    }
    @Override
    public List convertList(List strings) {
      return Types.toBooleanList(strings);
    }
    @Override
    public Boolean[] convert(List strings) {
      return Types.toBooleanArray(strings);
    }
  },

  DOUBLE("Double") {
    @Override
    public Double convert(String s) {
      return Double.parseDouble(s);
    }
    @Override
    public List convertList(List strings) {
      return Types.toDoubleList(strings);
    }

    @Override
    public Double[] convert(List strings) {
      return Types.toDoubleArray(strings);
    }
  },

  LOCAL_DATE_TIME("LocalDateTime") {
    @Override
    public LocalDateTime convert(String s) {
      try {
        return LocalDateTime.parse(s);
      } catch (DateTimeParseException e) {
        System.out.println(e.getMessage());
      }
      return null;
    }
    @Override
    public List convertList(List strings) {
      return Types.toLocalDateTimeList(strings);
    }

    @Override
    public LocalDateTime[] convert(List strings) {
      return Types.toLocalDateTimeArray(strings);
    }
  },

  OFFSET_DATE_TIME("OffsetDateTime") {
    @Override
    public OffsetDateTime convert(String s) {
      try {
        return OffsetDateTime.parse(s);
      } catch (DateTimeParseException e) {
        System.out.println(e.getMessage());
      }
      return null;
    }
    @Override
    public List convertList(List strings) {
      return Types.toOffsetDateTimeList(strings);
    }

    @Override
    public OffsetDateTime[] convert(List strings) {
      return Types.toOffsetDateTimeArray(strings);
    }
  },

  STRING("String") {
    @Override
    public String convert(String s) {
      return s;
    }
    @Override
    public List convertList(List strings) {
      return new ArrayList<>(strings);
    }

    @Override
    public String[] convert(List strings) {
      return String[].class.cast(strings.toArray());
    }
  };

  private final String symbol;

  DataType(final String symbol) {
    this.symbol = symbol;
  }

  @Override
  public String toString() {
    return symbol;
  }

  public abstract List convertList(List strings);

  public abstract Object[] convert(List strings);

  public abstract Object convert(String s);

  private static final Map stringToEnum = new HashMap<>();

  static {
    for (DataType dt : values()) {
      stringToEnum.put(dt.toString(), dt);
    }
  }

  public static DataType fromString(String symbol) {
    return stringToEnum.get(symbol);
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy