blob: d1eaa6522218c9f4cb2c3f7e82f065ad1cf6c1ec [file] [log] [blame]
/**
* Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Florian Pirchner - Initial implementation
*/
package org.eclipse.osbp.dsl.dto.lib;
public interface IMapper<D, E> {
/**
* Maps the given entity to the given dto.
*
* @param dto
* @param entity
* @param context
*/
void mapToDTO(D dto, E entity, MappingContext context);
/**
* Maps the given dto to the given entity.
*
* @param dto
* @param entity
* @param context
*/
void mapToEntity(D dto, E entity, MappingContext context);
/**
* Creates a new dto that is mapped by the current mapper.
*
* @return
*/
<X> X createDto();
/**
* Creates a new entity that is mapped by the current mapper.
*
* @return
*/
<X> X createEntity();
/**
* Calculates a unique hash code for the DTO based on the entity. <br>
* For entity based dtos the FQN of the dto and the id of entity is used.
* <p>
* org.eclipse.osbp.dtos.ItemDTO(id=17):
* <code>hash=org.eclipse.osbp.dtos.ItemDto({entity.hashCode()})</code>
*
* @param entity
* @return
*/
String createDtoHash(Object entity);
/**
* Calculates a unique hash code for the entity based on the dto. <br>
* For entity based dtos the FQN of the entity and the id of dto is used.
* <p>
* org.eclipse.osbp.entities.Item(id=17):
* <code>hash=org.eclipse.osbp.entities.Item({dto.hashCode()})</code>
*
* @param dto
* @return
*/
String createEntityHash(Object dto);
}