1 package perf; 2 3 import java.io.IOException; 4 import java.io.StringWriter; 5 import java.util.*; 6 7 import com.fasterxml.jackson.core.*; 8 9 public class MediaItem 10 { 11 public enum Player { JAVA, FLASH; } 12 public enum Size { SMALL, LARGE; } 13 14 private List<Photo> _photos; 15 private Content _content; 16 MediaItem()17 public MediaItem() { } 18 MediaItem(Content c)19 public MediaItem(Content c) 20 { 21 _content = c; 22 } 23 addPhoto(Photo p)24 public void addPhoto(Photo p) { 25 if (_photos == null) { 26 _photos = new ArrayList<Photo>(); 27 } 28 _photos.add(p); 29 } 30 getImages()31 public List<Photo> getImages() { return _photos; } setImages(List<Photo> p)32 public void setImages(List<Photo> p) { _photos = p; } 33 getContent()34 public Content getContent() { return _content; } setContent(Content c)35 public void setContent(Content c) { _content = c; } 36 asJsonString(JsonFactory f)37 public String asJsonString(JsonFactory f) throws IOException 38 { 39 StringWriter w = new StringWriter(); 40 JsonGenerator gen = f.createGenerator(w); 41 write(gen); 42 gen.close(); 43 w.close(); 44 return w.toString(); 45 } 46 write(JsonGenerator gen)47 public void write(JsonGenerator gen) throws IOException 48 { 49 gen.writeStartObject(); 50 51 gen.writeFieldName("content"); 52 if (_content == null) { 53 gen.writeNull(); 54 } else { 55 _content.write(gen); 56 } 57 gen.writeFieldName("photos"); 58 if (_photos == null) { 59 gen.writeNull(); 60 } else { 61 gen.writeStartArray(); 62 for (int i = 0, len = _photos.size(); i < len; ++i) { 63 _photos.get(i).write(gen); 64 } 65 gen.writeEndArray(); 66 } 67 gen.writeEndObject(); 68 } 69 70 /* 71 /********************************************************** 72 /* Helper types 73 /********************************************************** 74 */ 75 76 public static class Photo 77 { 78 private String _uri; 79 private String _title; 80 private int _width; 81 private int _height; 82 private Size _size; 83 Photo()84 public Photo() {} Photo(String uri, String title, int w, int h, Size s)85 public Photo(String uri, String title, int w, int h, Size s) 86 { 87 _uri = uri; 88 _title = title; 89 _width = w; 90 _height = h; 91 _size = s; 92 } 93 getUri()94 public String getUri() { return _uri; } getTitle()95 public String getTitle() { return _title; } getWidth()96 public int getWidth() { return _width; } getHeight()97 public int getHeight() { return _height; } getSize()98 public Size getSize() { return _size; } 99 setUri(String u)100 public void setUri(String u) { _uri = u; } setTitle(String t)101 public void setTitle(String t) { _title = t; } setWidth(int w)102 public void setWidth(int w) { _width = w; } setHeight(int h)103 public void setHeight(int h) { _height = h; } setSize(Size s)104 public void setSize(Size s) { _size = s; } 105 write(JsonGenerator gen)106 public void write(JsonGenerator gen) throws IOException 107 { 108 gen.writeStartObject(); 109 gen.writeStringField("uri", _uri); 110 gen.writeStringField("title", _title); 111 gen.writeNumberField("width", _width); 112 gen.writeNumberField("height", _height); 113 if (_size == null) { 114 gen.writeNullField("size"); 115 } else { 116 gen.writeStringField("size", _size.name()); 117 } 118 gen.writeEndObject(); 119 } 120 } 121 122 public static class Content 123 { 124 private String _uri; 125 private String _title; 126 private int _width; 127 private int _height; 128 private String _format; 129 private long _duration; 130 private long _size; 131 private int _bitrate; 132 private String _copyright; 133 private Player _player; 134 135 private List<String> _persons; 136 write(JsonGenerator gen)137 public void write(JsonGenerator gen) throws IOException 138 { 139 gen.writeStartObject(); 140 141 gen.writeStringField("uri", _uri); 142 gen.writeStringField("title", _title); 143 144 gen.writeNumberField("width", _width); 145 gen.writeNumberField("height", _height); 146 147 gen.writeStringField("format", _format); 148 149 gen.writeNumberField("duration", _duration); 150 gen.writeNumberField("size", _size); 151 gen.writeNumberField("bitrate", _bitrate); 152 gen.writeStringField("copyright", _copyright); 153 154 if (_player == null) { 155 gen.writeNullField("player"); 156 } else { 157 gen.writeStringField("player", _player.name()); 158 } 159 160 gen.writeFieldName("photos"); 161 if (_persons == null) { 162 gen.writeNull(); 163 } else { 164 gen.writeStartArray(); 165 for (int i = 0, len = _persons.size(); i < len; ++i) { 166 gen.writeString(_persons.get(i)); 167 } 168 gen.writeEndArray(); 169 } 170 gen.writeEndObject(); 171 } 172 Content()173 public Content() { } 174 addPerson(String p)175 public void addPerson(String p) { 176 if (_persons == null) { 177 _persons = new ArrayList<String>(); 178 } 179 _persons.add(p); 180 } 181 getPlayer()182 public Player getPlayer() { return _player; } getUri()183 public String getUri() { return _uri; } getTitle()184 public String getTitle() { return _title; } getWidth()185 public int getWidth() { return _width; } getHeight()186 public int getHeight() { return _height; } getFormat()187 public String getFormat() { return _format; } getDuration()188 public long getDuration() { return _duration; } getSize()189 public long getSize() { return _size; } getBitrate()190 public int getBitrate() { return _bitrate; } getPersons()191 public List<String> getPersons() { return _persons; } getCopyright()192 public String getCopyright() { return _copyright; } 193 setPlayer(Player p)194 public void setPlayer(Player p) { _player = p; } setUri(String u)195 public void setUri(String u) { _uri = u; } setTitle(String t)196 public void setTitle(String t) { _title = t; } setWidth(int w)197 public void setWidth(int w) { _width = w; } setHeight(int h)198 public void setHeight(int h) { _height = h; } setFormat(String f)199 public void setFormat(String f) { _format = f; } setDuration(long d)200 public void setDuration(long d) { _duration = d; } setSize(long s)201 public void setSize(long s) { _size = s; } setBitrate(int b)202 public void setBitrate(int b) { _bitrate = b; } setPersons(List<String> p)203 public void setPersons(List<String> p) { _persons = p; } setCopyright(String c)204 public void setCopyright(String c) { _copyright = c; } 205 } 206 } 207