/*
* DString.java
* Copyright (c) 2005 by University of Hamburg. All Rights Reserved.
* Departament of Informatics.
* Distributed Systems and Information Systems.
*
* Created by walczak on Jan 17, 2006.
* Last revision $Revision: 6926 $ by:
* $Author: braubach $ on $Date: 2008-09-28 22:16:58 +0200 (So, 28 Sep 2008) $.
*/
package nuggets.delegate;
import java.net.InetAddress;
import java.net.UnknownHostException;
import nuggets.IAssembler;
import nuggets.ICruncher;
import nuggets.PersistenceException;
/** DString
* @author walczak
* @since Jan 17, 2006
*/
public class DInetAddress extends ASimpleDelegate
{
/**
* @param clazz
* @param asm
* @return a new instance of this array
* @throws Exception
*/
public Object getInstance(Class clazz,IAssembler asm) throws Exception
{
return InetAddress.getByName((String)asm.getAttributeValue("v"));
}
/**
* @param o
* @param mill
* @see nuggets.delegate.ASimpleDelegate#persist(java.lang.Object, nuggets.ICruncher)
*/
public void persist(Object o, ICruncher mill, ClassLoader classloader)
{
mill.startConcept(o);
mill.put("v", ((InetAddress)o).getHostAddress());
}
/**
* @param exp
* @return "InetAddress.getByName((String)"+exp+")";
* @see nuggets.delegate.ASimpleDelegate#getUnmarshallString(String, java.lang.String)
*/
public String getUnmarshallString(String className, String exp)
{
return "java.net.InetAddress.getByName((String)"+exp+")";
}
/**
* @param exp
* @return exp+".getHostAddress()";
* @see nuggets.delegate.ASimpleDelegate#getMarshallString(java.lang.String)
*/
public String getMarshallString(String exp)
{
return exp+".getHostAddress()";
}
/**
* @param clazz
* @param o
* @return the name of the class
* @see nuggets.delegate.ADelegate#marshall(java.lang.Class, java.lang.Object)
*/
public String marshall(Class clazz, Object o)
{
return ((InetAddress)o).getHostName();
}
/**
* @param clazz
* @param value
* @return the boolean expression
* @see nuggets.delegate.ASimpleDelegate#unmarshall(java.lang.Class, java.lang.Object)
*/
public Object unmarshall(Class clazz, Object value)
{
try
{
return InetAddress.getByName((String)value);
}
catch(UnknownHostException e)
{
throw new PersistenceException(e);
}
}
}
/*
* $Log$
* Revision 1.7 2006/06/29 17:27:25 walczak
* created a reflection delegate. alpha
*
* Revision 1.6 2006/02/23 17:46:25 walczak
* LF
*
* Revision 1.5 2006/02/21 15:02:16 walczak
* *** empty log message ***
*
* Revision 1.4 2006/02/17 12:48:54 walczak
* yet even faster
*
* Revision 1.3 2006/02/16 17:41:08 walczak
* no reference to strings in Maps but a direct inclusion.
*
* Revision 1.2 2006/01/20 18:11:02 walczak
* ------------------------
*
* Revision 1.1 2006/01/18 13:59:47 walczak
* Introduced the nuggets package.
*
*/