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

schemacrawler.tools.command.serialize.model.ColumnDocument Maven / Gradle / Ivy

There is a newer version: 16.25.2
Show newest version
package schemacrawler.tools.command.serialize.model;

import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import static java.util.Objects.requireNonNull;
import static us.fatehi.utility.Utility.isBlank;
import schemacrawler.schema.Column;

@JsonNaming(PropertyNamingStrategies.KebabCaseStrategy.class)
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@JsonPropertyOrder({"column", "remarks", "type", "referenced-column"})
public final class ColumnDocument implements Serializable {

  private static final long serialVersionUID = 5110252842937512910L;

  private final String columnName;
  private final String dataType;
  private final String remarks;
  private final ReferencedColumnDocument referencedColumn;

  public ColumnDocument(final Column column, final Column pkColumn) {
    requireNonNull(column, "No column provided");

    columnName = column.getName();

    dataType = column.getColumnDataType().getName();

    final String remarks = column.getRemarks();
    if (!isBlank(remarks)) {
      this.remarks = remarks;
    } else {
      this.remarks = null;
    }

    if (pkColumn == null) {
      referencedColumn = null;
    } else {
      referencedColumn = new ReferencedColumnDocument(pkColumn);
    }
  }

  @JsonProperty("column")
  public String getColumnName() {
    return columnName;
  }

  @JsonProperty("type")
  public String getDataType() {
    return dataType;
  }

  @JsonProperty("referenced-column")
  public ReferencedColumnDocument getReferencedColumn() {
    return referencedColumn;
  }

  @JsonProperty("remarks")
  public String getRemarks() {
    return remarks;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy