Merge branch 'master' of wp5.e-taxonomy.eu:/var/git/cdmlib into remoting-4.0
[cdmlib.git] / cdmlib-services / src / main / java / eu / etaxonomy / cdm / api / service / lsid / LSIDMetadataMapper.java
1 // $Id$
2 /**
3 * Copyright (C) 2009 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
6 *
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
9 */
10
11
12 package eu.etaxonomy.cdm.api.service.lsid;
13
14 import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
15
16
17 /**
18 * Class which takes an Identifiable entity of type T and transforms it into
19 * an object graph which can be marshalled into an xml document. Classes extending this
20 * interface encapsulate the logic mapping an internal, application-specific representation
21 * of a type of data to an (externally defined) representation of the data for exchange with
22 * other applications.
23 * @author ben
24 *
25 * @param <T>
26 */
27 public interface LSIDMetadataMapper<T extends IIdentifiableEntity> {
28 /**
29 * Create a representation of the Identifiable object input for exchange.
30 * @param T input, the object to be transformed (plus descendants if needed)
31 * @return An Object containing a graph of data to be exchanged (to be subsequently transformed).
32 */
33 public Object mapMetadata(T input);
34 }