Esempio n. 1
0
  public String encode(String type, Class<?> limit) {
    if (type.equals(Encodable.DATATABLES)) return encodeDataTables(limit);
    // templates
    String templateXML =
        "<Manga><Title>%s</Title><Description>%s</Description><Author>%s</Author><ReleaseYear>%d</ReleaseYear><Mature>%b</Mature><Cover>%s</Cover><Address>%s</Address><Chapters>%s</Chapters></Manga>";
    String templateJSON =
        "{title: '%s', description: '%s', author: '%s', releaseYear: %d, mature: %b, cover: '%s', address: '%s', chapters: [%s]}";

    // check for limit
    StringBuilder sbchapters = new StringBuilder();
    if (limit != Manga.class) {
      Iterator<Chapter> i = chapters.iterator();
      while (i.hasNext()) {
        Chapter c = i.next();
        if (type.equals(Encodable.XML)) sbchapters.append(c.encode(type, limit));
        if (type.equals(Encodable.JSON)) {
          sbchapters.append(c.encode(type, limit));
          if (i.hasNext()) sbchapters.append(",");
        }
      }
    }

    // select format (default XML)
    String format = templateXML;
    if (type.equals(Encodable.XML)) {
      format = templateXML;
    } else if (type.equals(Encodable.JSON)) {
      format = templateJSON;
    }

    // build!
    return String.format(
        format,
        getTitle(),
        getDescription(),
        getAuthor(),
        getReleaseYear(),
        isMature(),
        getCover(),
        getAddress(),
        sbchapters);
  }
Esempio n. 2
0
 private String encodeDataTables(Class<?> limit) {
   String templateDATATABLES = "['%s', '%s', %d, %d]";
   if (limit == Manga.class) {
     return String.format(
         templateDATATABLES, getTitle(), getAuthor(), getReleaseYear(), getChapterCount());
   } else if (limit == Chapter.class) {
     StringBuilder sb = new StringBuilder().append("[");
     Iterator<Chapter> i = chapters.iterator();
     while (i.hasNext()) {
       Chapter m = i.next();
       sb.append(m.encode(Encodable.DATATABLES, limit));
       if (i.hasNext()) sb.append(",");
     }
     sb.append("]");
     return sb.toString();
   }
   return null;
 }