/*
Transit - Remote procedure calls made simple
Copyright (c) 2012 Ulrich Hilger
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package de.uhilger.transit;
/**
* Klassen, die Java-Objekte in ein anderes Format umwandeln und umgekehrt
* muessen diese Schnittstelle implementieren
*
* @author Copyright (c) Ulrich Hilger, http://uhilger.de
* @author Published under the terms and conditions of
* the GNU Affero General Public License
*
* @version 1, September 16, 2012
*/
public interface Wandler {
/**
* Ein Java-Objekt in das Format verwandeln, das dieser Wandler
* verarbeitet
*
* @param obj das Objekt, das verwandelt werden soll
* @param typ der Datentyp, von dem verwandelt werden soll
* @return das Objekt, in das das uebergebene Objekt verwandelt wurde
*/
public Object vonJava(Object obj, Class typ);
/**
* Das Format, das dieser Wandler verarbeitet, zu Java wandeln
*
* @param obj das Objekt, das verwandelt werden soll
* @param typ der Datentyp, in den verwandelt werden soll
* @return das Objekt, in das das uebergebene Objekt verwandelt wurde
*/
public Object zuJava(Object obj, Class typ);
/**
* Das Format ermitteln, das dieser Wandler verarbeitet
* @return das Format, das dieser Wandler verarbeitet
*/
public String getFormat();
/**
* Diesen Wandler aufloesen
*/
public void aufloesen();
}