package com.hphoto.bean; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; import org.apache.hadoop.io.ArrayWritable; import org.apache.hadoop.io.Writable; import com.hphoto.bean.Exif; import com.hphoto.bean.Tags; public class TestData implements Writable{ private String[] name ; private Tags[] tags; private String caption; private Exif exif; public void readFields(DataInput in) throws IOException { caption = in.readUTF(); int length = in.readInt(); name = new String[length]; for(int i = 0 ; i < name.length; i++){ name[i] = in.readUTF(); } exif = new Exif(); exif.readFields(in); ArrayWritable aw = new ArrayWritable(Tags.class); //read tag //aw.setValueClass(Tags.class); aw.readFields(in); tags = (Tags[])aw.toArray(); } public void write(DataOutput out) throws IOException { out.writeUTF(caption); out.writeInt(name.length); for(int i = 0 ; i < name.length; i++){ out.writeUTF(name[i]); } exif.write(out); ArrayWritable aw = new ArrayWritable(Tags.class); //write tags aw.set(tags); aw.write(out); } public String getCaption() { return caption; } public void setCaption(String caption) { this.caption = caption; } public String[] getName() { return name; } public void setName(String[] name) { this.name = name; } public Tags[] getTags() { return tags; } public void setTags(Tags[] tags) { this.tags = tags; } public Exif getExif() { return exif; } public void setExif(Exif exif) { this.exif = exif; } }