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

io.ebeaninternal.xmlmapping.ToXmapEbean Maven / Gradle / Ivy

The newest version!
package io.ebeaninternal.xmlmapping;

import io.ebeaninternal.xmapping.api.XmapDto;
import io.ebeaninternal.xmapping.api.XmapEbean;
import io.ebeaninternal.xmapping.api.XmapEntity;
import io.ebeaninternal.xmapping.api.XmapNamedQuery;
import io.ebeaninternal.xmapping.api.XmapRawSql;
import io.ebeaninternal.xmlmapping.model.XmAliasMapping;
import io.ebeaninternal.xmlmapping.model.XmColumnMapping;
import io.ebeaninternal.xmlmapping.model.XmDto;
import io.ebeaninternal.xmlmapping.model.XmEbean;
import io.ebeaninternal.xmlmapping.model.XmEntity;
import io.ebeaninternal.xmlmapping.model.XmNamedQuery;
import io.ebeaninternal.xmlmapping.model.XmRawSql;

import java.util.List;

import static java.util.stream.Collectors.toList;

public class ToXmapEbean {

  public List toBeans(List xmBeans) {
    return xmBeans.stream()
      .map(this::toBean)
      .collect(toList());
  }

  private XmapEbean toBean(XmEbean bean) {
    XmapEbean xmap = new XmapEbean();
    xmap.getDto().addAll(toDto(bean.getDto()));
    xmap.getEntity().addAll(toEntity(bean.getEntity()));
    return xmap;
  }

  private List toEntity(List xmEntity) {
    return xmEntity.stream()
      .map(this::toEntity)
      .collect(toList());
  }

  private XmapEntity toEntity(XmEntity xmEntity) {
    XmapEntity entity = new XmapEntity(xmEntity.getClazz());
    for (XmNamedQuery named : xmEntity.getNamedQuery()) {
      entity.getNamedQuery().add(toNamed(named));
    }
    for (XmRawSql xmRawSql : xmEntity.getRawSql()) {
      entity.getRawSql().add(toRaw(xmRawSql));
    }
    return entity;
  }

  private XmapNamedQuery toNamed(XmNamedQuery named) {
    return new XmapNamedQuery(named.getName(), named.getQuery().getValue());
  }

  private List toDto(List dto) {
    return dto.stream()
      .map(this::toDto)
      .collect(toList());
  }

  private XmapDto toDto(XmDto xmapDto) {
    XmapDto dto = new XmapDto(xmapDto.getClazz());
    dto.getRawSql().addAll(toRaw(xmapDto.getRawSql()));
    return dto;
  }

  private List toRaw(List rawSql) {
    return rawSql.stream()
      .map(this::toRaw)
      .collect(toList());
  }

  private XmapRawSql toRaw(XmRawSql xmRawSql) {
    XmapRawSql rawSql = new XmapRawSql(xmRawSql.getName(), xmRawSql.getQuery().getValue());
    for (XmColumnMapping xmCol : xmRawSql.getColumnMapping()) {
      rawSql.addColumnMapping(xmCol.getColumn(), xmCol.getProperty());
    }
    for (XmAliasMapping xmAlias : xmRawSql.getAliasMapping()) {
      rawSql.addAliasMapping(xmAlias.getAlias(), xmAlias.getProperty());
    }
    return rawSql;
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy