/*
* 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.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
import nuggets.IAssembler;
import nuggets.ICruncher;
/**
* DString
*
* @author walczak
* @since Jan 17, 2006
*/
public class DCalendar extends ADelegate
{
/**
* @param clazz
* @param asm
* @return the string stored in "v"
* @throws Exception
*/
public Object getInstance(Class clazz, IAssembler asm) throws Exception
{
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone((String)asm.getAttributeValue("timezone")));
//cal.setTimeInMillis(Long.parseLong((String)asm.get("millis"))); // does only work since 1.4.
cal.setTime(new Date(Long.parseLong((String)asm.getAttributeValue("millis"))));
return cal;
}
/**
* @param o
* @param mill
* @see ASimpleDelegate#persist(Object, nuggets.ICruncher)
*/
public void persist(Object o, ICruncher mill, ClassLoader classloader)
{
mill.startConcept(o);
mill.put("timezone", ((Calendar)o).getTimeZone().getID());
//mill.put("millis", Long.toString(((Calendar)o).getTimeInMillis())); // does only work since 1.4.
mill.put("millis", Long.toString(((Calendar)o).getTime().getTime()));
}
}