Try changing 'type' of 'StartDt', 'EndDt' to string.
Have a look at example at below link
http://www.castor.org/xml-fieldhandlers.html
Thanks,
Sam
ptyagi108 wrote:
>
> Hi Werner,
>
> The xml looks like ,
>
> <Restrictn>
> <CategRestr/>
> <restrDesc> </restrDesc>
> <Vendor> </Vendor>
> <Violatn>Y</Violatn>
> <SubTyp>Buy</SubTyp>
> <Qualify>MinDol</Qualify>
> <Amt>0</Amt>
> <Notes> </Notes>
> <ID> </ID>
> <StartDt>1967-08-13</StartDt>
> <EndDt>1967-08-13</EndDt>
> <Actn>A</Actn>
> </Restrictn>
>
> the mappings are like,
>
> <class name="com.xyz.common.datatypes.RestrictnImpl"
> auto-complete="false">
>
> <map-to xml="Restrictn"/>
>
> <field name="categRestr" type="string" required="false"
> direct="false" transient="false">
> <bind-xml name="CategRestr" node="element" reference="false"/>
> </field>
>
> <field name="Vendor" type="string" required="false"
> direct="false" transient="false">
> <bind-xml name="RestrVendor" node="element"
> location="Classification" reference="false"/>
> </field>
> <field name="InViolatn" type="boolean" required="false"
> direct="false" transient="false">
> <bind-xml name="RestrInViolatn" node="element"
> location="Classification" reference="false"/>
> </field>
>
> <field name="ID" type="string" required="false"
> direct="false" transient="false">
> <bind-xml name="RestrictionID" node="element"
> location="Classification" reference="false"/>
> </field>
> <field name="restrDesc" type="string" required="false"
> direct="false" transient="false">
> <bind-xml name="RestrDesc" node="element"
> location="Classification" reference="false"/>
> </field>
> <field name="EndDt" type="date" required="false"
> direct="false" transient="false"
> handler="com.xyz.service.MyDateHandler">
> <bind-xml name="RestrEndDt" node="element"
> location="Classification" reference="false"/>
> </field>
>
>
> <field name="StartDt" type="date" required="false"
> direct="false" transient="false"
> handler="com.xyz.service.MyDateHandler">
> <bind-xml name="RestrStartDt" node="element"
> location="Classification" reference="false"/>
> </field>
> <field name="Amt" type="long" required="false"
> direct="false" transient="false">
> <bind-xml name="RestrAmt" node="element" reference="false"/>
> </field>
> <field name="symbol" type="string" required="false"
> direct="false" transient="false">
> <bind-xml name="symbol" node="element" reference="false"/>
> </field>
>
> </class>
>
>
> MyDateHandler.java looks like,
>
> import java.text.ParseException;
> import java.text.SimpleDateFormat;
> import java.util.Date;
>
> import org.exolab.castor.mapping.GeneralizedFieldHandler;
>
>
>
> /**
> * The FieldHandler for the Date class
> *
> */
> public class MyDateHandler
> extends GeneralizedFieldHandler
> {
>
> private static final String FORMAT = "yyyy-MM-dd";
>
> /**
> * Creates a new MyDateHandler instance
> */
> public MyDateHandler() {
> super();
> }
>
> /**
> * This method is used to convert the value when the
> * getValue method is called. The getValue method will
> * obtain the actual field value from given 'parent' object.
> * This convert method is then invoked with the field's
> * value. The value returned from this method will be
> * the actual value returned by getValue method.
> *
> * @param value the object value to convert after
> * performing a get operation
> * @return the converted value.
> */
> public Object convertUponGet(Object value) {
> if (value == null) return null;
> SimpleDateFormat formatter = new SimpleDateFormat(FORMAT);
> Date date = (Date)value;
> return formatter.format(date);
> }
>
>
> /**
> * This method is used to convert the value when the
> * setValue method is called. The setValue method will
> * call this method to obtain the converted value.
> * The converted value will then be used as the value to
> * set for the field.
> *
> * @param value the object value to convert before
> * performing a set operation
> * @return the converted value.
> */
> public Object convertUponSet(Object value) {
> SimpleDateFormat formatter = new SimpleDateFormat(FORMAT);
> Date date = null;
> try {
> date = formatter.parse((String)value);
> }
> catch(ParseException px) {
> throw new IllegalArgumentException(px.getMessage());
> }
> return date;
> }
>
> /**
> * Returns the class type for the field that this
> * GeneralizedFieldHandler converts to and from. This
> * should be the type that is used in the
> * object model.
> *
> * @return the class type of of the field
> */
> public Class getFieldType() {
> return Date.class;
> }
>
> /**
> * Creates a new instance of the object described by
> * this field.
> *
> * @param parent The object for which the field is created
> * @return A new instance of the field's value
> * @throws IllegalStateException This field is a simple
> * type and cannot be instantiated
> */
> public Object newInstance( Object parent )
> throws IllegalStateException
> {
> //-- Since it's marked as a string...just return null,
> //-- it's not needed.
> return null;
> }
>
> }
>
>
>
> Regards,
> Pramod
>
>
> Werner Guttmann-6 wrote:
>>
>> Hi,
>>
>> what is the actual <date> field looking like in your XML document ? Can
>> you provide us with a sample ?
>>
>> And are you using a mapping, or did you start with an XML schema ?
>>
>> Cheers
>> Werner
>>
>> PS In general, please do provide more information about the problem at
>> hand, such as XML document (fragments), mapping file (fragments), ....
>> otherwise it will be very hard to help you.
>>
>> On 23.02.2010 12:20, ptyagi108 wrote:
>>>
>>> Hi ,
>>>
>>> I am getting an error parsing a Date field like
>>> java.lang.IllegalStateException: Bad DateTime format: 1967-08-13
>>> DateTime is not long enough.I found similar bug not resloved yet in
>>> castor
>>> Jira.. can anyone pls inform me some good work around for the same issue
>>> which do not require me to change castor library.
>>>
>>> http://jira.codehaus.org/browse/CASTOR-1878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_88296
>>>
>>> Regards,
>>> Pramod
>>
>> ---------------------------------------------------------------------
>> To unsubscribe from this list, please visit:
>>
>> http://xircles.codehaus.org/manage_email
>>
>>
>>
>>
>
>
--
View this message in context:
http://old.nabble.com/convertUponSet-method-of-MyDateHandler-extending-GeneralizedFieldHandler-is-not-getting-called-tp27701790p27714169.html
Sent from the Castor - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email