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

io.camunda.operate.webapp.rest.dto.DtoCreator Maven / Gradle / Ivy

The newest version!
/*
 * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH under
 * one or more contributor license agreements. See the NOTICE file distributed
 * with this work for additional information regarding copyright ownership.
 * Licensed under the Camunda License 1.0. You may not use this file
 * except in compliance with the Camunda License 1.0.
 */
package io.camunda.operate.webapp.rest.dto;

import io.camunda.operate.exceptions.OperateRuntimeException;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public abstract class DtoCreator {

  public static , E extends Object> T create(
      E from, Class clazz) {
    if (from == null) {
      return null;
    }
    try {
      final T newDto = clazz.getDeclaredConstructor().newInstance();
      newDto.fillFrom(from);
      return newDto;
    } catch (InstantiationException
        | IllegalAccessException
        | InvocationTargetException
        | NoSuchMethodException e) {
      throw new OperateRuntimeException("Not implemented");
    }
  }

  public static , E extends Object> List create(
      List entities, Class clazz) {
    if (entities == null) {
      return new ArrayList<>();
    }
    return entities.stream()
        .filter(item -> item != null)
        .map(item -> create(item, clazz))
        .collect(Collectors.toList());
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy