Package ca.jimr.gae.profiler.MiniProfiler

Examples of ca.jimr.gae.profiler.MiniProfiler.Step


      step.close();
    }
  }

  private StringBuilder createDiskCsv() throws GameEngineException {
    Step step = MiniProfiler.step("API.createDiskCsv");
    try {
      HashMap<Object, HashMap<String, Object>> disks = ge.persistence
          .getAll("Disk");

      // write the column headers
      boolean header = true;

      final StringBuilder csv = new StringBuilder();

      for (HashMap<String, Object> diskMap : disks.values()) {
        final String diskJson = (String) diskMap.get("json");

        // final ScriptableObject o = ge.execute("_=" + diskJson);

        final ScriptableObject disk = createDisk();

        update(disk, ge.parse(diskJson));

        // header
        if (header) {
          for (final Object id : disk.getIds()) {

            if (disk.get(id) instanceof String
                || disk.get(id) instanceof Number
                || disk.get(id) instanceof Boolean) {
              csv.append(id + ",");
            }
          }
          header = false;
          csv.append("\n");
        }

        // data
        for (final Object id : disk.getIds()) {

          if (disk.get(id) instanceof String) {
            csv.append("\""
                + ((String) disk.get(id)).replaceAll("\"",
                    "\"\"") + "\",");
          } else if (disk.get(id) instanceof Number
              || disk.get(id) instanceof Boolean) {
            csv.append(disk.get(id) + ",");
          }
        }

        csv.append("\n");
      }
      return csv;

    } finally {
      step.close();
    }
  }
View Full Code Here


    }
  }

  protected ScriptableObject createPlayer(final String username)
      throws GameEngineException {
    Step step = MiniProfiler.step("API.createPlayer");

    try {
      // createPlayer
      final ScriptableObject player = (ScriptableObject) ge.invoke(
          "Player", new String[] { username, });
      final LinkedHashMap<String, ScriptableObject[]> disks = new LinkedHashMap<String, ScriptableObject[]>();

      // Knights
      // Pikemen
      disks.put("Pikemen",
          new ScriptableObject[] { createPoint(-3.2, -6.2),
              createPoint(-1.2, -5), createPoint(-2.6, -3.6), });

      // Heavy Horse Cavalry
      disks.put("Heavy Horse Cavalry", new ScriptableObject[] {
          createPoint(-4.5, -4.5), createPoint(-5.7, -2.9),
          createPoint(-4.1, -1.7), createPoint(-6, -.8) });

      // Elf
      // Deepwood Warriors x3
      disks.put("Deepwood Warriors", new ScriptableObject[] {
          createPoint(3.6, -6.4), createPoint(2.4, -5.4),
          createPoint(3.6, -3.8), });
      // Riders of the Wood x4
      disks.put("Riders of the Wood", new ScriptableObject[] {
          createPoint(4.6, -5.4), createPoint(6.5, -4.0),
          createPoint(5.1, -2.1), createPoint(6.5, -.6) });
      // Deepwood Archers x2
      disks.put("Deepwood Archers",
          new ScriptableObject[] { createPoint(7.5, -2.3),
              createPoint(8.8, -1) });

      // Dwarf
      // Damlo Hammerfist
      disks.put("Damlo Hammerfist",
          new ScriptableObject[] { createPoint(-8.7, 1.3), });
      // Grovan of the Deep
      disks.put("Grovan of the Deep",
          new ScriptableObject[] { createPoint(-9.7, 2.2), });
      // Stalwarts x1
      disks.put("Stalwarts",
          new ScriptableObject[] { createPoint(-9.1, 3.8), });

      // Regiment of the Anvil x5
      disks.put("Regiment of the Anvil",
          new ScriptableObject[] { createPoint(-7.6, 2.9),
              createPoint(-6.8, 4.2), createPoint(-8.2, 5),
              createPoint(-7.2, 6.5), createPoint(-5.7, 5.7), });

      // Orc
      // Urgg the Really Mean x1[+][-]
      disks.put("Urgg the Really Mean",
          new ScriptableObject[] { createPoint(9.4, 1.3), });
      // Shieldgrogs x2[+][-]
      disks.put("Shieldgrogs",
          new ScriptableObject[] { createPoint(9.8, 3.4),
              createPoint(10.5, 2.5), });
      // Ghash Zzurkan x1[+][-]
      disks.put("Ghash Zzurkan",
          new ScriptableObject[] { createPoint(8.4, 2.5), });
      // Grugs x5
      disks.put("Grugs",
          new ScriptableObject[] { createPoint(6.6, 6.7),
              createPoint(6.6, 5), createPoint(7.9, 6.1),
              createPoint(7.5, 3.8), createPoint(8.8, 4.8), });

      // Dragon
      // Dragonflight
      disks.put(
          "Dragonflight",
          new ScriptableObject[] { createPoint(-3, 7),
              createPoint(-3, 8.5), createPoint(-1.5, 8.5),
              createPoint(-1.5, 7) });

      // Drake Warriors
      disks.put(
          "Drake Warriors",
          new ScriptableObject[] { createPoint(0, 7),
              createPoint(0, 8.5), createPoint(1.5, 8.5), });

      // Dragonling
      disks.put("Dragonling", new ScriptableObject[] {
          createPoint(1.5, 7), createPoint(3, 7),
          createPoint(3, 8.5), });

      final String knights = "Starter Knights";
      final String elves = "Starter Elf";
      final String dwarfs = "Starter Dwarf";
      final String dragons = "Starter Dragons";
      final String orcs = "Starter Orc";

      for (final Entry<String, ScriptableObject[]> entry : disks
          .entrySet()) {
        final ScriptableObject disk = getDisk(entry.getKey());
        if (disk.get("name") != null) {

          for (final ScriptableObject location : entry.getValue()) {

            // addDisk
            Object diskNumber = ge.invoke(player, "addDisk",
                new Object[] { disk, location });

            // knight disk
            if (disk.get("faction").equals("Knight")) {
              ge.invoke(player, "addDiskToArmy", new Object[] {
                  knights, diskNumber, location });
            }
            // dragon disk
            else if (disk.get("faction").equals("Dragon")) {
              ge.invoke(player, "addDiskToArmy", new Object[] {
                  dragons, diskNumber, location });
            }
            // dwarf disk
            else if (disk.get("faction").equals("Dwarf")) {
              ge.invoke(player, "addDiskToArmy", new Object[] {
                  dwarfs, diskNumber, location });
            }

            // elf disk
            else if (disk.get("faction").equals("Elf")) {
              ge.invoke(player, "addDiskToArmy", new Object[] {
                  elves, diskNumber, location });
            }

            // orc disk
            else if (disk.get("faction").equals("Orc")) {
              ge.invoke(player, "addDiskToArmy", new Object[] {
                  orcs, diskNumber, location });
            }
          }
        }
      }

      savePlayer(player);
      return player;
    } finally {
      step.close();
    }
  }
View Full Code Here

    }
  }

  private ScriptableObject createPoint(final double x, final double d)
      throws GameEngineException {
    Step step = MiniProfiler.step("API.createPoint");
    try {
      return (ScriptableObject) ge.invoke("Point", new Object[] { x, d });
    } finally {
      step.close();
    }
  }
View Full Code Here

      step.close();
    }
  }

  private ScriptableObject createTable() throws GameEngineException {
    Step step = MiniProfiler.step("API.createTable");
    try {
      final ScriptableObject table = (ScriptableObject) ge
          .invoke("Table");

      return table;
    } finally {
      step.close();
    }
  }
View Full Code Here

  protected ScriptableObject createTable(final String maxPlayers,
      final String maxPoints, final String activations,
      final String startingDisks, final String reinforcements,
      final String alignmentRestriction, final String scenario)
      throws GameEngineException {
    Step step = MiniProfiler.step("API.createTable(...)");
    try {
      final ScriptableObject table = (ScriptableObject) ge.invoke(
          "Table", new String[] { maxPlayers, maxPoints, activations,
              startingDisks, reinforcements,
              alignmentRestriction, scenario, });
      ge.invoke(table, "placeStagingDisks", new String[] {});
      return table;
    } finally {
      step.close();
    }
  }
View Full Code Here

    }
  }

  private void downloadDisks(final HttpServletResponse response)
      throws GameEngineException {
    Step step = MiniProfiler.step("API.downloadDisks");
    try {
      // ..... then respond
      response.setHeader("Content-disposition",
          "attachment;filename=disks.zip");

      response.setContentType("application/zip");
      response.setStatus(HttpServletResponse.SC_OK);

      // note : intentionally no content-length set, automatic chunked
      // transfer if stream is larger than the internal buffer of the
      // response

      try {
        ZipOutputStream zipOut = new ZipOutputStream(
            response.getOutputStream());

        // PrintWriter zipWriter = new PrintWriter(zipOut);

        try {

          ZipEntry ze = new ZipEntry("disks.csv");
          zipOut.putNextEntry(ze);

          StringBuilder createCsv = createDiskCsv();
          // zipWriter.write(createCsv.toString());
          zipOut.write(createCsv.toString().getBytes());

          zipOut.closeEntry();

          // zipAllDiskImages(zipOut);

        } finally {
          zipOut.close();
        }
      } catch (IOException e) {
        e.printStackTrace();
      }
    } finally {
      step.close();
    }
  }
View Full Code Here

    }
  }

  protected void endActivations(final ScriptableObject table,
      final String user) throws GameEngineException {
    Step step = MiniProfiler.step("API.endActivations");
    try {
      ge.invoke(table, "endActivations", new Object[] { user });
      saveTable(table);

      // see if someone won
      if (((ScriptableObject) table.get("memento")).get("segment") == "FINISHED") {
        updateRatings(table);
      }
    } finally {
      step.close();
    }
  }
View Full Code Here

    }
  }

  protected void endReinforcements(ScriptableObject table, String userName)
      throws GameEngineException {
    Step step = MiniProfiler.step("API.endReinforcements");
    try {
      ge.invoke(table, "endReinforcements", new Object[] { userName });
      saveTable(table);
    } finally {
      step.close();
    }
  }
View Full Code Here

      step.close();
    }
  }

  private String getActiveTables() {
    Step step = MiniProfiler.step("API.getActiveTables");
    try {
      Filter segmentFilter = new FilterPredicate("segment",
          FilterOperator.IN, ACTIVE_SEGMENTS);

      Query q = new Query("Table").setFilter(segmentFilter);
      DatastoreService datastore = DatastoreServiceFactory
          .getDatastoreService();

      PreparedQuery pq = datastore.prepare(q);

      StringBuilder sb = tablesToJSON(pq);
      return sb.toString();
    } finally {
      step.close();
    }
  }
View Full Code Here

    }
  }

  private ScriptableObject getDisk(final String name)
      throws GameEngineException {
    Step step = MiniProfiler.step("API.getDisk");
    try {
      final ScriptableObject disk = (ScriptableObject) ge.invoke("Disk");

      final HashMap<String, Object> hashMap = ge.persistence.get("Disk",
          name);
      final String text = (String) hashMap.get("json");
      if (text != null) {
        final String json = text;

        ge.invoke(disk, "update", new Object[] { ge.parse(json) });
      }
      return disk;
    } finally {
      step.close();
    }
  }
View Full Code Here

TOP

Related Classes of ca.jimr.gae.profiler.MiniProfiler.Step

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.