package gr.upatras.ece.nam.fsdl.valueconverter; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import org.eclipse.xtext.common.services.DefaultTerminalConverters; import org.eclipse.xtext.conversion.IValueConverter; import org.eclipse.xtext.conversion.ValueConverter; import org.eclipse.xtext.conversion.ValueConverterException; import org.eclipse.xtext.nodemodel.INode; import org.eclipse.xtext.util.Strings; public class FSDLValueConverter extends DefaultTerminalConverters{ @ValueConverter(rule = "EDate") public IValueConverter<Date> EDate() { return new IValueConverter<Date>() { public Date toValue(String string, INode node) throws ValueConverterException{ DateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); Date dateNow = new Date (); string = string.replace("\"", ""); if (Strings.isEmpty(string)) throw new ValueConverterException("Couldn't convert empty string to Date", node, null); else if ("now".equals(string.trim())) return dateNow; try { //System.out.println("MyVTDLValueConverter.toValue() in return! ="+ sdf.parse(string)); return sdf.parse(string) ; } catch (ParseException e) { //System.out.println("MyVTDLValueConverter.toValue() in return ParseException! "); throw new ValueConverterException("Couldn't convert '"+string+"' to Date", node, e); } } public String toString(Date value) { //System.out.println("MyVTDLValueConverter.toString()= "+value); DateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); return sdf.format (value) ; } }; } }