how to implements a custom field serializer

6 views
Skip to first unread message

liujie

unread,
Jun 17, 2006, 9:42:42 AM6/17/06
to Google Web Toolkit
i don't want to use the default serialization, because it must extends
from IsSerialiable interface. I want to implements my own serializer.
Anyone knowns How to. for example following Product Class...


import java.util.Date;

public class Product {
private long id;
private String name;
private float price;

private String description;
private String status;

private String picture;


private String publisher;
private Date createTime;
private int preference;

public final static int DEFAULT_PREFERENCE = 10;


public Product(){}
public Product(String name, float price, String publisher){
this(name, price, publisher, DEFAULT_PREFERENCE);
}
public Product(String name, float price, String publisher, int
preference){
this.name = name;
this.price = price;
this.publisher = publisher;
this.preference = preference;

}
public long getId(){
return id;
}
public void setId(long id){
this.id = id;
}

public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public String getDescription(){
return description;
}
public void setDescription(String description){
this.description = description;
}

public float getPrice(){
return price;
}
public void setPrice(float price){
this.price = price;
}


public String getStatus(){
return status;
}
public void setStatus(String status){
this.status = status;
}

public String getPicture(){
return picture;
}
public void setPicture(String picture){
this.picture = picture;
}


public String getPublisher(){
return publisher;
}
public int getPreference(){
return preference;
}
public Date getCreateTime(){
return createTime;
}
public void setCreateTime(Date createTime){
this.createTime = createTime;
}
}

liujie

unread,
Jun 17, 2006, 10:26:47 AM6/17/06
to Google Web Toolkit
for example

//first write your Java Object

import java.util.Date;

//import com.google.gwt.user.client.rpc.IsSerializable;

public class Product /*implements IsSerializable */{

private String picture;

public void setPublisher(String publisher){
this.publisher = publisher;


}
public int getPreference(){
return preference;
}
public Date getCreateTime(){
return createTime;
}
public void setCreateTime(Date createTime){
this.createTime = createTime;
}
}

//second write Serializer Class Name is Product_CustomFieldSerializer

import com.google.gwt.user.client.rpc.SerializationException;
import com.google.gwt.user.client.rpc.SerializationStreamReader;
import com.google.gwt.user.client.rpc.SerializationStreamWriter;

/**
* Custom field serializer for the Java Byte class. If we have a class
that is
* final and not default constructable that has a custom serializer
*/
public final class Product_CustomFieldSerializer {


/**
* Save an object state into a stream.
*
* @param streamWriter
* @param instance
*/
public static void serialize(SerializationStreamWriter streamWriter,
Product instance) throws SerializationException {
streamWriter.writeObject(instance.getName());
streamWriter.writeFloat(instance.getPrice());
streamWriter.writeObject(instance.getPublisher());
}

/**
*
* @param streamReader
* @param instance
*/
public static void deserialize(SerializationStreamReader
streamReader,
Product instance) throws SerializationException {


String name = (String)streamReader.readObject();
float price = streamReader.readFloat();
String publisher = (String)streamReader.readObject();

instance.setName(name);
instance.setPrice(price);
instance.setPublisher(publisher);
}
}

Reply all
Reply to author
Forward
0 new messages