// Path: src/milk/telegram/type/Textable.java
// public interface Textable{
// 
//     String getText();
// }
// 
// Path: src/milk/telegram/type/file/Document.java
// public class Document implements Identifier<String>{
// 
//     private final String file_id;
//     private final String file_name;
// 
//     private final String mime_type;
// 
//     private final PhotoSize thumb;
// 
//     private final Integer size;
// 
//     private Document(JSONObject object){
//         this.file_id = object.getString("file_id");
//         this.file_name = object.optString("file_name");
//         this.mime_type = object.optString("mime_type");
// 
//         this.thumb = PhotoSize.create(object.optJSONObject("thumb"));
//         this.size = object.has("file_size") ? object.getInt("file_size") : null;
//     }
// 
//     public static Document create(JSONObject object){
//         if(object == null){
//             return null;
//         }
//         return new Document(object);
//     }
// 
//     public String getId(){
//         return file_id;
//     }
// 
//     public PhotoSize getThumb(){
//         return thumb;
//     }
// 
//     public String getFileName(){
//         return file_name;
//     }
// 
//     public String getMimeType(){
//         return mime_type;
//     }
// 
//     public Integer getSize(){
//         return size;
//     }
// 
// }


import milk.telegram.type.Textable;
import milk.telegram.type.file.Document;
import org.json.JSONObject;
package milk.telegram.type.message;


public class DocumentMessage extends Message implements Textable{

    private String caption;
// Path: src/milk/telegram/type/Textable.java
// public interface Textable{
// 
//     String getText();
// }
// 
// Path: src/milk/telegram/type/file/Document.java
// public class Document implements Identifier<String>{
// 
//     private final String file_id;
//     private final String file_name;
// 
//     private final String mime_type;
// 
//     private final PhotoSize thumb;
// 
//     private final Integer size;
// 
//     private Document(JSONObject object){
//         this.file_id = object.getString("file_id");
//         this.file_name = object.optString("file_name");
//         this.mime_type = object.optString("mime_type");
// 
//         this.thumb = PhotoSize.create(object.optJSONObject("thumb"));
//         this.size = object.has("file_size") ? object.getInt("file_size") : null;
//     }
// 
//     public static Document create(JSONObject object){
//         if(object == null){
//             return null;
//         }
//         return new Document(object);
//     }
// 
//     public String getId(){
//         return file_id;
//     }
// 
//     public PhotoSize getThumb(){
//         return thumb;
//     }
// 
//     public String getFileName(){
//         return file_name;
//     }
// 
//     public String getMimeType(){
//         return mime_type;
//     }
// 
//     public Integer getSize(){
//         return size;
//     }
// 
// }


// Path: src/milk/telegram/type/message/DocumentMessage.java
import milk.telegram.type.Textable;
import milk.telegram.type.file.Document;
import org.json.JSONObject;

package milk.telegram.type.message;


public class DocumentMessage extends Message implements Textable{

    private String caption;
    private Document document;