예제 #1
0
  private void SetChatManager(JsonObject chat, JsonObject log) {
    List<Line> chatMessages = new ArrayList<Line>();
    List<Line> gameHistory = new ArrayList<Line>();
    // Get chat info
    {
      JsonArray lines = chat.getAsJsonArray("lines");
      for (int i = 0; i < lines.size(); i++) {
        JsonObject line = lines.get(i).getAsJsonObject();

        String message = line.getAsJsonPrimitive("message").getAsString();
        String source = line.getAsJsonPrimitive("source").getAsString();
        Line l = new Line(message, source);
        chatMessages.add(l);
      }
    }

    // Get log info
    {
      JsonArray lines = log.getAsJsonArray("lines");
      for (int i = 0; i < lines.size(); i++) {
        JsonObject line = lines.get(i).getAsJsonObject();

        String message = line.getAsJsonPrimitive("message").getAsString();
        String source = line.getAsJsonPrimitive("source").getAsString();
        Line l = new Line(message, source);
        gameHistory.add(l);
      }
    }
    this.chatManager = new ChatManager(chatMessages, gameHistory);
  }
  public static SiebelPropertySet JsonObjectToPropertySet(JsonObject obj, SiebelPropertySet ps) {
    Iterator<Entry<String, JsonElement>> iterator = obj.entrySet().iterator();
    ps.setType("SiebelMessage");
    SiebelPropertySet child;
    while (iterator.hasNext()) {
      JsonArray jsonArray = new JsonArray();
      JsonObject jsonObject = new JsonObject();
      Map.Entry mapEntry = (Map.Entry) iterator.next();
      if (mapEntry != null) {
        JsonElement jsonelement = (JsonElement) mapEntry.getValue();
        if (jsonelement.isJsonArray()) {
          jsonArray = jsonelement.getAsJsonArray();
          child = new SiebelPropertySet();
          child.setType("ListOf-" + mapEntry.getKey().toString());
          for (int i = 0; i < jsonArray.size(); i++) {
            if (jsonArray.get(i).isJsonObject() || jsonArray.get(i).isJsonArray()) {
              SiebelPropertySet temp = new SiebelPropertySet();
              temp.setType("" + i);
              child.addChild(JsonObjectToPropertySet(jsonArray.get(i).getAsJsonObject(), temp));
            } else child.setProperty("" + i, jsonArray.get(i).getAsString());
          }
          ps.addChild(child);
        } else if (jsonelement.isJsonObject()) {
          jsonObject = jsonelement.getAsJsonObject();
          child = new SiebelPropertySet();
          child.setType(mapEntry.getKey().toString());
          ps.addChild(JsonObjectToPropertySet(jsonObject, child));
        } else {
          ps.setProperty(mapEntry.getKey().toString(), mapEntry.getValue().toString());
        }
      }
    }

    return ps;
  }
예제 #3
0
  private void SetPlayerManager(JsonArray players, JsonObject turnTracker) {
    Player[] catanPlayers = new Player[players.size()];
    int longestRoad = turnTracker.getAsJsonPrimitive("longestRoad").getAsInt();
    int largestArmy = turnTracker.getAsJsonPrimitive("largestArmy").getAsInt();

    for (int i = 0; i < players.size(); i++) {
      if (!players.get(i).isJsonNull()) {
        JsonObject player = players.get(i).getAsJsonObject();
        int index = player.getAsJsonPrimitive("playerIndex").getAsInt();

        String name = player.getAsJsonPrimitive("name").getAsString();
        String color = player.getAsJsonPrimitive("color").getAsString();
        int playerId = player.getAsJsonPrimitive("playerID").getAsInt();
        int cities = player.getAsJsonPrimitive("cities").getAsInt();
        int settlements = player.getAsJsonPrimitive("settlements").getAsInt();
        int roads = player.getAsJsonPrimitive("roads").getAsInt();
        int victoryPoints = player.getAsJsonPrimitive("victoryPoints").getAsInt();

        Player newPlayer = new Player();
        newPlayer.setPoints(victoryPoints);
        try {
          newPlayer.setColor(color);
        } catch (InvalidColorException e) {
          e.printStackTrace();
        }
        if (longestRoad == index) {
          newPlayer.setLongestRoad(true);
        }
        if (largestArmy == index) {
          newPlayer.setLargestArmy(true);
        }

        newPlayer.setId(playerId);
        newPlayer.setCitiesRemaining(cities);
        newPlayer.setSettlementsRemaining(settlements);
        newPlayer.setRoadsRemaining(roads);
        newPlayer.setPlayerIndex(index);
        newPlayer.setName(name);

        // <========Construct part of player manager here============>
        catanPlayers[index] = newPlayer;
      }
    }
    // <========Construct player manager here============>
    PlayerManager newPlayerManager = new PlayerManager();
    newPlayerManager.setCatanPlayers(catanPlayers);
    newPlayerManager.setIndexOfLargestArmy(largestArmy);
    newPlayerManager.setIndexOfLongestRoad(longestRoad);

    this.playerManager = newPlayerManager;
  }
 private static void readJsonFile() {
   try (JsonReader jsonReader =
       Json.createReader(
           new FileReader(
               Paths.get(System.getProperty("user.dir"), "target/myData.json").toString()))) {
     JsonStructure jsonStructure = jsonReader.read();
     JsonValue.ValueType valueType = jsonStructure.getValueType();
     if (valueType == JsonValue.ValueType.OBJECT) {
       JsonObject jsonObject = (JsonObject) jsonStructure;
       JsonValue firstName = jsonObject.get("firstName");
       LOGGER.info("firstName=" + firstName);
       JsonValue emailAddresses = jsonObject.get("phoneNumbers");
       if (emailAddresses.getValueType() == JsonValue.ValueType.ARRAY) {
         JsonArray jsonArray = (JsonArray) emailAddresses;
         for (int i = 0; i < jsonArray.size(); i++) {
           JsonValue jsonValue = jsonArray.get(i);
           LOGGER.info("emailAddress(" + i + "): " + jsonValue);
         }
       }
     } else {
       LOGGER.warning("First object is not of type " + JsonValue.ValueType.OBJECT);
     }
   } catch (FileNotFoundException e) {
     LOGGER.severe("Failed to open file: " + e.getMessage());
   }
 }
예제 #5
0
  private void parseGroupBy(String context, QueryMetric queryMetric, JsonArray groupBys)
      throws QueryException, BeanValidationException {
    for (int J = 0; J < groupBys.size(); J++) {
      String groupContext = "group_by[" + J + "]";
      JsonObject jsGroupBy = groupBys.get(J).getAsJsonObject();

      JsonElement nameElement = jsGroupBy.get("name");
      if (nameElement == null || nameElement.getAsString().isEmpty())
        throw new BeanValidationException(
            new SimpleConstraintViolation(groupContext, "must have a name"), context);

      String name = nameElement.getAsString();

      GroupBy groupBy = m_groupByFactory.createGroupBy(name);
      if (groupBy == null)
        throw new BeanValidationException(
            new SimpleConstraintViolation(groupContext + "." + name, "invalid group_by name"),
            context);

      deserializeProperties(context + "." + groupContext, jsGroupBy, name, groupBy);
      validateObject(groupBy, context + "." + groupContext);

      groupBy.setStartDate(queryMetric.getStartTime());

      queryMetric.addGroupBy(groupBy);
    }
  }
예제 #6
0
 public static Object gsonToPrimitive(JsonElement element) {
   if (element.isJsonPrimitive()) {
     JsonPrimitive prim = element.getAsJsonPrimitive();
     if (prim.isString()) {
       return prim.getAsString();
     } else if (prim.isBoolean()) {
       return prim.getAsBoolean();
     } else if (prim.isNumber()) {
       return prim.getAsNumber();
     } else {
       throw new IllegalArgumentException("Unknown Gson primitive: " + prim);
     }
   } else if (element.isJsonArray()) {
     JsonArray array = element.getAsJsonArray();
     List<Object> list = new ArrayList<Object>();
     for (int i = 0; i < array.size(); i++) {
       list.add(gsonToPrimitive(array.get(i)));
     }
     return list;
   } else if (element.isJsonNull()) {
     return null;
   } else if (element.isJsonObject()) {
     Map<String, Object> map = new HashMap<String, Object>();
     for (Map.Entry<String, JsonElement> entry : element.getAsJsonObject().entrySet()) {
       map.put(entry.getKey(), gsonToPrimitive(entry.getValue()));
     }
     return map;
   } else {
     throw new IllegalArgumentException("Unknown Gson value: " + element);
   }
 }
예제 #7
0
 public List<CIBuild> getBuilds(CIJob job) throws PhrescoException {
   if (debugEnabled) {
     S_LOGGER.debug("Entering Method CIManagerImpl.getCIBuilds(CIJob job)");
   }
   List<CIBuild> ciBuilds = null;
   try {
     if (debugEnabled) {
       S_LOGGER.debug("getCIBuilds()  JobName = " + job.getName());
     }
     JsonArray jsonArray = getBuildsArray(job);
     ciBuilds = new ArrayList<CIBuild>(jsonArray.size());
     Gson gson = new Gson();
     CIBuild ciBuild = null;
     for (int i = 0; i < jsonArray.size(); i++) {
       ciBuild = gson.fromJson(jsonArray.get(i), CIBuild.class);
       setBuildStatus(ciBuild, job);
       String buildUrl = ciBuild.getUrl();
       String jenkinUrl = job.getJenkinsUrl() + ":" + job.getJenkinsPort();
       buildUrl =
           buildUrl.replaceAll(
               "localhost:" + job.getJenkinsPort(),
               jenkinUrl); // when displaying url it should display setup machine ip
       ciBuild.setUrl(buildUrl);
       ciBuilds.add(ciBuild);
     }
   } catch (Exception e) {
     if (debugEnabled) {
       S_LOGGER.debug(
           "Entering Method CIManagerImpl.getCIBuilds(CIJob job) " + e.getLocalizedMessage());
     }
   }
   return ciBuilds;
 }
예제 #8
0
  private void parsePlugins(String context, QueryMetric queryMetric, JsonArray plugins)
      throws BeanValidationException, QueryException {
    for (int I = 0; I < plugins.size(); I++) {
      JsonObject pluginJson = plugins.get(I).getAsJsonObject();

      JsonElement name = pluginJson.get("name");
      if (name == null || name.getAsString().isEmpty())
        throw new BeanValidationException(
            new SimpleConstraintViolation("plugins[" + I + "]", "must have a name"), context);

      String pluginContext = context + ".plugins[" + I + "]";
      String pluginName = name.getAsString();
      QueryPlugin plugin = m_pluginFactory.createQueryPlugin(pluginName);

      if (plugin == null)
        throw new BeanValidationException(
            new SimpleConstraintViolation(pluginName, "invalid query plugin name"), pluginContext);

      deserializeProperties(pluginContext, pluginJson, pluginName, plugin);

      validateObject(plugin, pluginContext);

      queryMetric.addPlugin(plugin);
    }
  }
  private ArrayList<String> getAppUsersId() {
    // TODO: Fetch user ids from database
    ArrayList<String> usersID = new ArrayList<String>();

    try {
      String response =
          new GetUsersTask()
              .execute("http://katanaserver.no-ip.org/gcm_server_php/get_users.php")
              .get();

      // Parse the response
      JsonElement jelement = new JsonParser().parse(response);
      JsonArray jarray = jelement.getAsJsonArray();
      for (int i = 0; i < jarray.size(); i++) {
        usersID.add(jarray.get(i).getAsJsonObject().get("UserID").toString());
      }

    } catch (InterruptedException e) {
      e.printStackTrace();
    } catch (ExecutionException e) {
      e.printStackTrace();
    }

    return usersID;
  }
  @Override
  public FriendList deserialize(JsonElement je, Type typeOfT, JsonDeserializationContext context)
      throws JsonParseException {
    FriendList friendList = new FriendList();

    JsonObject response = (JsonObject) je.getAsJsonObject().get("response");
    JsonArray items = response.getAsJsonObject().getAsJsonArray("items");

    for (int i = 0; i < items.size(); i++) {
      Friend friend = context.deserialize(items.get(i), Friend.class);
      friendList.getFriends().add(friend);
    }
    return friendList;
  }
예제 #11
0
  public List<RollupTask> parseRollupTasks(String json)
      throws BeanValidationException, QueryException {
    List<RollupTask> tasks = new ArrayList<RollupTask>();
    JsonParser parser = new JsonParser();
    JsonArray rollupTasks = parser.parse(json).getAsJsonArray();
    for (int i = 0; i < rollupTasks.size(); i++) {
      JsonObject taskObject = rollupTasks.get(i).getAsJsonObject();
      RollupTask task = parseRollupTask(taskObject, "tasks[" + i + "]");
      task.addJson(taskObject.toString().replaceAll("\\n", ""));
      tasks.add(task);
    }

    return tasks;
  }
예제 #12
0
 public WxMpUserList deserialize(
     JsonElement json, Type typeOfT, JsonDeserializationContext context)
     throws JsonParseException {
   JsonObject o = json.getAsJsonObject();
   WxMpUserList wxMpUserList = new WxMpUserList();
   wxMpUserList.setTotal(GsonHelper.getInteger(o, "total"));
   wxMpUserList.setCount(GsonHelper.getInteger(o, "count"));
   wxMpUserList.setNextOpenId(GsonHelper.getString(o, "next_openid"));
   if (!o.get("data").isJsonNull()
       && !o.get("data").getAsJsonObject().get("openid").isJsonNull()) {
     JsonArray data = o.get("data").getAsJsonObject().get("openid").getAsJsonArray();
     for (int i = 0; i < data.size(); i++) {
       wxMpUserList.getOpenIds().add(GsonHelper.getAsString(data.get(i)));
     }
   }
   return wxMpUserList;
 }
예제 #13
0
  private void parseAggregators(
      String context, QueryMetric queryMetric, JsonArray aggregators, DateTimeZone timeZone)
      throws QueryException, BeanValidationException {
    for (int J = 0; J < aggregators.size(); J++) {
      JsonObject jsAggregator = aggregators.get(J).getAsJsonObject();

      JsonElement name = jsAggregator.get("name");
      if (name == null || name.getAsString().isEmpty())
        throw new BeanValidationException(
            new SimpleConstraintViolation("aggregators[" + J + "]", "must have a name"), context);

      String aggContext = context + ".aggregators[" + J + "]";
      String aggName = name.getAsString();
      Aggregator aggregator = m_aggregatorFactory.createAggregator(aggName);

      if (aggregator == null)
        throw new BeanValidationException(
            new SimpleConstraintViolation(aggName, "invalid aggregator name"), aggContext);

      // If it is a range aggregator we will default the start time to
      // the start of the query.
      if (aggregator instanceof RangeAggregator) {
        RangeAggregator ra = (RangeAggregator) aggregator;
        ra.setStartTime(queryMetric.getStartTime());
      }

      if (aggregator instanceof TimezoneAware) {
        TimezoneAware ta = (TimezoneAware) aggregator;
        ta.setTimeZone(timeZone);
      }

      if (aggregator instanceof GroupByAware) {
        GroupByAware groupByAware = (GroupByAware) aggregator;
        groupByAware.setGroupBys(queryMetric.getGroupBys());
      }

      deserializeProperties(aggContext, jsAggregator, aggName, aggregator);

      validateObject(aggregator, aggContext);

      queryMetric.addAggregator(aggregator);
    }
  }
예제 #14
0
  public RollupTask parseRollupTask(JsonObject rollupTask, String context)
      throws BeanValidationException, QueryException {
    RollupTask task = m_gson.fromJson(rollupTask.getAsJsonObject(), RollupTask.class);

    validateObject(task);

    JsonArray rollups = rollupTask.getAsJsonObject().getAsJsonArray("rollups");
    if (rollups != null) {
      for (int j = 0; j < rollups.size(); j++) {
        JsonObject rollupObject = rollups.get(j).getAsJsonObject();
        Rollup rollup = m_gson.fromJson(rollupObject, Rollup.class);

        context = context + "rollup[" + j + "]";
        validateObject(rollup, context);

        JsonObject queryObject = rollupObject.getAsJsonObject("query");
        List<QueryMetric> queries = parseQueryMetric(queryObject, context);

        for (int k = 0; k < queries.size(); k++) {
          QueryMetric query = queries.get(k);
          context += ".query[" + k + "]";
          validateHasRangeAggregator(query, context);

          // Add aggregators needed for rollups
          SaveAsAggregator saveAsAggregator =
              (SaveAsAggregator) m_aggregatorFactory.createAggregator("save_as");
          saveAsAggregator.setMetricName(rollup.getSaveAs());

          TrimAggregator trimAggregator =
              (TrimAggregator) m_aggregatorFactory.createAggregator("trim");
          trimAggregator.setTrim(TrimAggregator.Trim.LAST);

          query.addAggregator(saveAsAggregator);
          query.addAggregator(trimAggregator);
        }

        rollup.addQueries(queries);
        task.addRollup(rollup);
      }
    }

    return task;
  }
예제 #15
0
 @When("^I fill the form with data from json and submit$")
 public void i_fill_the_form_with_data_from_json_and_submit() throws Throwable {
   JsonParser parser = new JsonParser();
   JsonObject myobject = (JsonObject) parser.parse(json);
   JsonArray myarray = myobject.get("table").getAsJsonArray();
   JsonObject pradeep = myarray.get(0).getAsJsonObject();
   driver.findElement(By.name("firstname")).sendKeys(pradeep.get("firstname").getAsString());
   driver.findElement(By.name("lastname")).sendKeys(pradeep.get("lastname").getAsString());
   driver.findElement(By.id("sex-1")).click();
   driver.findElement(By.id("exp-2")).click();
   driver.findElement(By.id("datepicker")).sendKeys(pradeep.get("date_stopped").getAsString());
   driver.findElement(By.id("tea3")).click();
   driver.findElement(By.id("tool-1")).click();
   Select continents_select = new Select(driver.findElement(By.id("continents")));
   continents_select.selectByVisibleText(pradeep.get("continent").getAsString());
   Select another_select_list = new Select(driver.findElement(By.id("selenium_commands")));
   another_select_list.selectByVisibleText(pradeep.get("selenium_commands").getAsString());
   driver.findElement(By.id("submit")).click();
   AssertJUnit.assertEquals("Welcome", driver.getTitle());
 }
예제 #16
0
 private int getTotalBuilds(CIJob job) throws PhrescoException {
   try {
     S_LOGGER.debug("Entering Method CIManagerImpl.getTotalBuilds(CIJob job)");
     S_LOGGER.debug("getCIBuilds()  JobName = " + job.getName());
     JsonArray jsonArray = getBuildsArray(job);
     Gson gson = new Gson();
     CIBuild ciBuild = null;
     if (jsonArray.size() > 0) {
       ciBuild = gson.fromJson(jsonArray.get(0), CIBuild.class);
       String buildUrl = ciBuild.getUrl();
       String jenkinsUrl = job.getJenkinsUrl() + ":" + job.getJenkinsPort();
       // display the jenkins running url in ci
       buildUrl = buildUrl.replaceAll("localhost:" + job.getJenkinsPort(), jenkinsUrl);
       // list
       String response = getJsonResponse(buildUrl + API_JSON);
       JsonParser parser = new JsonParser();
       JsonElement jsonElement = parser.parse(response);
       JsonObject jsonObject = jsonElement.getAsJsonObject();
       JsonElement resultJson = jsonObject.get(FrameworkConstants.CI_JOB_BUILD_RESULT);
       JsonArray asJsonArray =
           jsonObject.getAsJsonArray(FrameworkConstants.CI_JOB_BUILD_ARTIFACTS);
       // when build result is not known
       if (jsonObject.get(FrameworkConstants.CI_JOB_BUILD_RESULT).toString().equals(STRING_NULL)) {
         // it indicates the job is in progress and not yet completed
         return -1;
         // when build is success and build zip relative path is unknown
       } else if (resultJson.getAsString().equals(CI_SUCCESS_FLAG) && asJsonArray.size() < 1) {
         return -1;
       } else {
         return jsonArray.size();
       }
     } else {
       return -1; // When the project is build first time,
     }
   } catch (ClientHandlerException ex) {
     S_LOGGER.error(ex.getLocalizedMessage());
     throw new PhrescoException(ex);
   }
 }
예제 #17
0
  private void SetDevCardManager(JsonArray players, JsonObject deck) {
    PlayerDevCards newPlayerDevCards = new PlayerDevCards();
    PlayerDevCards oldPlayerDevCards = new PlayerDevCards();
    PlayerDevCards playedDevCards = new PlayerDevCards();
    boolean[] hasPlayedDevCardsList = new boolean[4];
    DevCardList devCardStack = new DevCardList();

    int monopolyCount = deck.getAsJsonPrimitive("monopoly").getAsInt();
    int monumentCount = deck.getAsJsonPrimitive("monument").getAsInt();
    int roadBuilderCount = deck.getAsJsonPrimitive("roadBuilding").getAsInt();
    int soldierCount = deck.getAsJsonPrimitive("soldier").getAsInt();
    int yearOfPlentyCount = deck.getAsJsonPrimitive("yearOfPlenty").getAsInt();

    devCardStack.setMonopoly(monopolyCount);
    devCardStack.setMonument(monumentCount);
    devCardStack.setRoadBuilder(roadBuilderCount);
    devCardStack.setSoldier(soldierCount);
    devCardStack.setYearOfPlenty(yearOfPlentyCount);

    for (int i = 0; i < players.size(); i++) {
      if (!players.get(i).isJsonNull()) {
        JsonObject player = players.get(i).getAsJsonObject();
        int index = player.getAsJsonPrimitive("playerIndex").getAsInt();

        JsonObject newDevCards = player.getAsJsonObject("newDevCards");
        JsonObject oldDevCards = player.getAsJsonObject("oldDevCards");
        // New Dev Cards
        {
          int monopoly = newDevCards.getAsJsonPrimitive("monopoly").getAsInt();
          int monument = newDevCards.getAsJsonPrimitive("monument").getAsInt();
          int roadBuilding = newDevCards.getAsJsonPrimitive("roadBuilding").getAsInt();
          int soldier = newDevCards.getAsJsonPrimitive("soldier").getAsInt();
          int yearOfPlenty = newDevCards.getAsJsonPrimitive("yearOfPlenty").getAsInt();
          newPlayerDevCards.setDevCardsForPlayer(
              index, new DevCardList(monopoly, monument, roadBuilding, soldier, yearOfPlenty));
        }
        // Old Dev Cards
        {
          int monopoly = oldDevCards.getAsJsonPrimitive("monopoly").getAsInt();
          int monument = oldDevCards.getAsJsonPrimitive("monument").getAsInt();
          int roadBuilding = oldDevCards.getAsJsonPrimitive("roadBuilding").getAsInt();
          int soldier = oldDevCards.getAsJsonPrimitive("soldier").getAsInt();
          int yearOfPlenty = oldDevCards.getAsJsonPrimitive("yearOfPlenty").getAsInt();
          oldPlayerDevCards.setDevCardsForPlayer(
              index, new DevCardList(monopoly, monument, roadBuilding, soldier, yearOfPlenty));
        }
        // Played Dev Cards
        {
          int monuments = player.getAsJsonPrimitive("monuments").getAsInt();
          int soldiers = player.getAsJsonPrimitive("soldiers").getAsInt();
          playedDevCards.setDevCardsForPlayer(index, new DevCardList(0, monuments, 0, soldiers, 0));
        }
        // Has Played Dev Cards List
        {
          boolean playedDevCard = player.getAsJsonPrimitive("playedDevCard").getAsBoolean();
          hasPlayedDevCardsList[index] = playedDevCard;
        }
      }
    }
    this.devCardManager =
        new DevCardManager(
            newPlayerDevCards,
            oldPlayerDevCards,
            playedDevCards,
            hasPlayedDevCardsList,
            devCardStack);
  }
예제 #18
0
  private List<QueryMetric> parseQueryMetric(JsonObject obj, String contextPrefix)
      throws QueryException, BeanValidationException {
    List<QueryMetric> ret = new ArrayList<QueryMetric>();

    Query query;
    try {
      query = m_gson.fromJson(obj, Query.class);
      validateObject(query);
    } catch (ContextualJsonSyntaxException e) {
      throw new BeanValidationException(
          new SimpleConstraintViolation(e.getContext(), e.getMessage()), "query");
    }

    JsonArray metricsArray = obj.getAsJsonArray("metrics");
    if (metricsArray == null) {
      throw new BeanValidationException(
          new SimpleConstraintViolation("metric[]", "must have a size of at least 1"),
          contextPrefix + "query");
    }

    for (int I = 0; I < metricsArray.size(); I++) {
      String context =
          (!contextPrefix.isEmpty() ? contextPrefix + "." : contextPrefix)
              + "query.metric["
              + I
              + "]";
      try {
        Metric metric = m_gson.fromJson(metricsArray.get(I), Metric.class);

        validateObject(metric, context);

        long startTime = getStartTime(query, context);
        QueryMetric queryMetric =
            new QueryMetric(startTime, query.getCacheTime(), metric.getName());
        queryMetric.setExcludeTags(metric.isExcludeTags());
        queryMetric.setLimit(metric.getLimit());

        long endTime = getEndTime(query);
        if (endTime > -1) queryMetric.setEndTime(endTime);

        if (queryMetric.getEndTime() < startTime)
          throw new BeanValidationException(
              new SimpleConstraintViolation("end_time", "must be greater than the start time"),
              context);

        queryMetric.setCacheString(query.getCacheString() + metric.getCacheString());

        JsonObject jsMetric = metricsArray.get(I).getAsJsonObject();

        JsonElement group_by = jsMetric.get("group_by");
        if (group_by != null) {
          JsonArray groupBys = group_by.getAsJsonArray();
          parseGroupBy(context, queryMetric, groupBys);
        }

        JsonElement aggregators = jsMetric.get("aggregators");
        if (aggregators != null) {
          JsonArray asJsonArray = aggregators.getAsJsonArray();
          if (asJsonArray.size() > 0)
            parseAggregators(context, queryMetric, asJsonArray, query.getTimeZone());
        }

        JsonElement plugins = jsMetric.get("plugins");
        if (plugins != null) {
          JsonArray pluginArray = plugins.getAsJsonArray();
          if (pluginArray.size() > 0) parsePlugins(context, queryMetric, pluginArray);
        }

        JsonElement order = jsMetric.get("order");
        if (order != null) queryMetric.setOrder(Order.fromString(order.getAsString(), context));

        queryMetric.setTags(metric.getTags());

        ret.add(queryMetric);
      } catch (ContextualJsonSyntaxException e) {
        throw new BeanValidationException(
            new SimpleConstraintViolation(e.getContext(), e.getMessage()), context);
      }
    }

    return (ret);
  }
예제 #19
0
  @Test
  public void testCreateFailures() {
    // Delayed invalid JSON
    JsonArray array = null;
    try {
      array = JsonParser.parseArray("[{]", true);
    } catch (JsonParseException e) {
      fail("This shouldn't happen!");
    }

    // get(int)
    try {
      array.get(0);
      fail("Didn't throw an exception on delayed invalid JSON");
    } catch (JsonParseException e) {
    } catch (Exception e) {
      e.printStackTrace();
      fail("Wrong exception!");
    }

    // getObject(int)
    try {
      array.getObject(0);
      fail("Didn't throw an exception on delayed invalid JSON");
    } catch (JsonParseException e) {
    } catch (Exception e) {
      fail("Wrong exception!");
    }

    // getArray(int)
    try {
      array.getArray(0);
      fail("Didn't throw an exception on delayed invalid JSON");
    } catch (JsonParseException e) {
    } catch (Exception e) {
      fail("Wrong exception!");
    }

    // getString(int)
    try {
      array.getString(0);
      fail("Didn't throw an exception on delayed invalid JSON");
    } catch (JsonParseException e) {
    } catch (Exception e) {
      fail("Wrong exception!");
    }

    // getLong(int)
    try {
      array.getLong(0);
      fail("Didn't throw an exception on delayed invalid JSON");
    } catch (JsonParseException e) {
    } catch (Exception e) {
      fail("Wrong exception!");
    }

    // getDouble(int)
    try {
      array.getDouble(0);
      fail("Didn't throw an exception on delayed invalid JSON");
    } catch (JsonParseException e) {
    } catch (Exception e) {
      fail("Wrong exception!");
    }

    // getBoolean(int)
    try {
      array.getBoolean(0);
      fail("Didn't throw an exception on delayed invalid JSON");
    } catch (JsonParseException e) {
    } catch (Exception e) {
      fail("Wrong exception!");
    }
  }
예제 #20
0
  private void SetMapManager(JsonObject map) {
    JsonArray hexes = map.getAsJsonArray("hexes");
    JsonArray ports = map.getAsJsonArray("ports");
    JsonArray roads = map.getAsJsonArray("roads");
    JsonArray settlements = map.getAsJsonArray("settlements");
    JsonArray cities = map.getAsJsonArray("cities");
    JsonObject robber = map.getAsJsonObject("robber");
    int radius = map.getAsJsonPrimitive("radius").getAsInt();

    // Return data structures
    HashMap<HexLocation, Hex> hexes_r = new HashMap<>();
    HashMap<VertexLocation, Settlement> settlements_r = new HashMap<VertexLocation, Settlement>();
    HashMap<EdgeLocation, Port> ports_r = new HashMap<EdgeLocation, Port>();
    HashMap<EdgeLocation, Road> roads_r = new HashMap<EdgeLocation, Road>();

    // Get Hex info
    for (int i = 0; i < hexes.size(); i++) {
      JsonObject hex = hexes.get(i).getAsJsonObject();
      JsonObject location = hex.getAsJsonObject("location");
      String resource = "DESERT";
      int number = 0;

      int x = location.getAsJsonPrimitive("x").getAsInt();
      int y = location.getAsJsonPrimitive("y").getAsInt();

      // if hex doesn't have resource and number it is desert hex
      if (hex.has("resource") && hex.has("number")) {
        resource = hex.getAsJsonPrimitive("resource").getAsString();
        number = hex.getAsJsonPrimitive("number").getAsInt();
      }

      // compile into Map structure
      Hex entry = new Hex(x, y, resource.toUpperCase(), number);
      hexes_r.put(entry.location, entry);
    }

    // Get Port info
    for (int i = 0; i < ports.size(); i++) {
      JsonObject port = ports.get(i).getAsJsonObject();
      JsonObject location = port.getAsJsonObject("location");
      String resource = "THREE";

      int x = location.getAsJsonPrimitive("x").getAsInt();
      int y = location.getAsJsonPrimitive("y").getAsInt();

      // if port doesn't have resource than it is 3:1 and those are for any resource
      if (port.has("resource")) resource = port.getAsJsonPrimitive("resource").getAsString();
      String direction = port.getAsJsonPrimitive("direction").getAsString();
      int ratio = port.getAsJsonPrimitive("ratio").getAsInt();

      // compile into Map structure
      HexLocation hexLocation = new HexLocation(x, y);
      EdgeLocation edgeLocation =
          new EdgeLocation(hexLocation, EdgeDirection.valueOf(Direction.shortToLong(direction)));
      // edgeLocation = edgeLocation.getNormalizedLocation();
      Port entry = new Port(edgeLocation, PortType.valueOf(resource.toUpperCase()), ratio);
      ports_r.put(entry.location, entry);
    }

    // Get road info
    for (int i = 0; i < roads.size(); i++) {
      JsonObject road = roads.get(i).getAsJsonObject();
      JsonObject location = road.getAsJsonObject("location");

      int x = location.getAsJsonPrimitive("x").getAsInt();
      int y = location.getAsJsonPrimitive("y").getAsInt();
      int owner = road.getAsJsonPrimitive("owner").getAsInt();
      String direction = location.getAsJsonPrimitive("direction").getAsString();

      // compile into Map structure
      HexLocation hexLocation = new HexLocation(x, y);
      EdgeLocation edgeLocation =
          new EdgeLocation(hexLocation, EdgeDirection.valueOf(Direction.shortToLong(direction)));
      edgeLocation = edgeLocation.getNormalizedLocation();
      Road entry = new Road(edgeLocation, owner);
      roads_r.put(entry.location, entry);
    }

    // Get settlement info
    for (int i = 0; i < settlements.size(); i++) {
      JsonObject settlement = settlements.get(i).getAsJsonObject();
      JsonObject location = settlement.getAsJsonObject("location");

      int x = location.getAsJsonPrimitive("x").getAsInt();
      int y = location.getAsJsonPrimitive("y").getAsInt();
      int owner = settlement.getAsJsonPrimitive("owner").getAsInt();
      String direction = location.getAsJsonPrimitive("direction").getAsString();

      // compile into Map structure
      HexLocation hexLocation = new HexLocation(x, y);
      VertexLocation vertexLocation =
          new VertexLocation(
              hexLocation, VertexDirection.valueOf(Direction.shortToLong(direction)));
      vertexLocation = vertexLocation.getNormalizedLocation();
      Settlement entry = new Settlement(vertexLocation, owner);
      settlements_r.put(entry.location, entry);
    }

    // Get city info
    for (int i = 0; i < cities.size(); i++) {
      JsonObject city = cities.get(i).getAsJsonObject();
      JsonObject location = city.getAsJsonObject("location");

      int x = location.getAsJsonPrimitive("x").getAsInt();
      int y = location.getAsJsonPrimitive("y").getAsInt();
      int owner = city.getAsJsonPrimitive("owner").getAsInt();
      String direction = location.getAsJsonPrimitive("direction").getAsString();

      // compile into Map structure
      HexLocation hexLocation = new HexLocation(x, y);
      VertexLocation vertexLocation =
          new VertexLocation(
              hexLocation, VertexDirection.valueOf(Direction.shortToLong(direction)));
      vertexLocation = vertexLocation.getNormalizedLocation();
      Settlement entry = new Settlement(vertexLocation, owner);
      entry.makeCity();
      settlements_r.put(entry.location, entry);
    }

    int x = robber.getAsJsonPrimitive("x").getAsInt();
    int y = robber.getAsJsonPrimitive("y").getAsInt();

    this.mapManager =
        new MapManager(hexes_r, settlements_r, ports_r, roads_r, new HexLocation(x, y), radius);
  }
예제 #21
0
  /** **************** Creation tests * **************** */
  @Test
  public void testCreate() {
    try {
      // Constructors
      JsonArray array = new JsonArray();
      assertEquals(0, array.size());

      JsonArray array2 = new JsonArray(57);
      assertEquals(0, array2.size());

      // add(Object) + get(int)
      Object addObj = new Object();
      array.add(addObj);
      assertEquals(1, array.size());
      assertEquals(addObj, array.get(0));

      Object addObj2 = new Object();
      array.add(addObj2);
      assertEquals(2, array.size());
      assertEquals(addObj2, array.get(1));

      // add(JsonObject) + getObject(int)
      JsonObject addJObj = new JsonObject();
      array.add(addJObj);
      assertEquals(3, array.size());
      assertEquals(addJObj, array.getObject(2));

      // add(JsonArray) + getArray(int)
      JsonArray addJArray = new JsonArray();
      array.add(addJArray);
      assertEquals(4, array.size());
      assertEquals(addJArray, array.getArray(3));

      // add(String) + getString(int)
      String addStr = "Kawaii desu!";
      array.add(addStr);
      assertEquals(5, array.size());
      assertEquals(addStr, array.getString(4));

      // add(int) + getLong(int)
      int addInt = 1_2_4_8;
      array.add(addInt);
      assertEquals(6, array.size());
      assertEquals(addInt, array.getLong(5).longValue());

      // add(long) + getLong(int)
      long addLong = 1_2_4_8_16_32_64;
      array.add(addLong);
      assertEquals(7, array.size());
      assertEquals(addLong, array.getLong(6).longValue());

      // add(float) + getDouble(int)
      float addFloat = 1_2_4_8.0f;
      array.add(addFloat);
      assertEquals(8, array.size());
      assertEquals(addFloat, array.getDouble(7).doubleValue(), 0.01);

      // add(double) + getDouble(int)
      double addDouble = 1_2_4_8.16_32_64;
      array.add(addDouble);
      assertEquals(9, array.size());
      assertEquals(addDouble, array.getDouble(8).doubleValue(), 0.0000001);

      // add(boolean) + getBoolean(int)
      boolean addBoolean = true;
      array.add(addBoolean);
      assertEquals(10, array.size());
      assertTrue(array.getBoolean(9));

      // Clone constructor
      JsonArray array3 = new JsonArray(array);
      assertEquals(10, array3.size());
      assertEquals(addObj, array3.get(0));
      assertEquals(addObj2, array3.get(1));
      assertEquals(addJObj, array3.getObject(2));
      assertEquals(addJArray, array3.getArray(3));
      assertEquals(addStr, array3.getString(4));
      assertEquals(addInt, array3.getLong(5).longValue());
      assertEquals(addLong, array3.getLong(6).longValue());
      assertEquals(addFloat, array3.getDouble(7).doubleValue(), 0.01);
      assertEquals(addDouble, array3.getDouble(8).doubleValue(), 0.0000001);
      assertTrue(array3.getBoolean(9));
    } catch (JsonException e) {
      fail("This shouldn't happen!");
    }
  }
예제 #22
0
  private void SetResourceManager(JsonObject bank, JsonArray players, JsonObject tradeOffer) {
    ResourceList bankResources;
    ResourceList[] playerResources = new ResourceList[4];
    boolean[] hasPlayerDiscarded = new boolean[4];
    TradeOffer tradeResourcesOffer = null;

    // Get bank resources
    {
      int brick = bank.getAsJsonPrimitive("brick").getAsInt();
      int ore = bank.getAsJsonPrimitive("ore").getAsInt();
      int sheep = bank.getAsJsonPrimitive("sheep").getAsInt();
      int wheat = bank.getAsJsonPrimitive("wheat").getAsInt();
      int wood = bank.getAsJsonPrimitive("wood").getAsInt();
      bankResources = new ResourceList(brick, ore, sheep, wheat, wood);
    }

    // Get player resources
    for (int i = 0; i < players.size(); i++) {
      if (!players.get(i).isJsonNull()) {
        JsonObject player = players.get(i).getAsJsonObject();
        JsonObject resource = player.getAsJsonObject("resources");
        int index = player.getAsJsonPrimitive("playerIndex").getAsInt();

        boolean discarded = player.getAsJsonPrimitive("discarded").getAsBoolean();
        hasPlayerDiscarded[i] = discarded;

        ResourceList resources;

        int brick = resource.getAsJsonPrimitive("brick").getAsInt();
        int ore = resource.getAsJsonPrimitive("ore").getAsInt();
        int sheep = resource.getAsJsonPrimitive("sheep").getAsInt();
        int wheat = resource.getAsJsonPrimitive("wheat").getAsInt();
        int wood = resource.getAsJsonPrimitive("wood").getAsInt();

        resources = new ResourceList(brick, ore, sheep, wheat, wood);
        playerResources[index] = resources;
      }
    }

    if (tradeOffer != null) // This is null if there is no current trade offers
    {
      int sender = tradeOffer.getAsJsonPrimitive("sender").getAsInt();
      int receiver = tradeOffer.getAsJsonPrimitive("receiver").getAsInt();

      ResourceList resourcesOffer;
      JsonObject offer = tradeOffer.getAsJsonObject("offer");
      {
        int brick = offer.getAsJsonPrimitive("brick").getAsInt();
        int ore = offer.getAsJsonPrimitive("ore").getAsInt();
        int sheep = offer.getAsJsonPrimitive("sheep").getAsInt();
        int wheat = offer.getAsJsonPrimitive("wheat").getAsInt();
        int wood = offer.getAsJsonPrimitive("wood").getAsInt();
        resourcesOffer = new ResourceList(brick, ore, sheep, wheat, wood);
      }
      tradeResourcesOffer = new TradeOffer(resourcesOffer, sender, receiver);
    }

    this.resourceManager =
        new ResourceManager(
            playerResources, bankResources, tradeResourcesOffer, hasPlayerDiscarded);
  }
  public void logController(String topic, MqttMessage mqttMessage) {
    // get deviceId
    String[] split = topic.split("log/");
    String deviceId = split[1];

    // parse log
    try {
      JsonReader reader = Json.createReader(new StringReader(mqttMessage.toString()));
      JsonObject jsonMessage = reader.readObject();
      String logType = jsonMessage.getString("type");
      switch (logType) {
        case LOG_NORMAL:
          int temperature = 0;
          int timer = jsonMessage.getInt("time");
          try {
            temperature = jsonMessage.getInt("temperature");
          } catch (Exception se1) {
            // @todo: warning
            break;
          }
          JsonString subDeviceId = jsonMessage.getJsonString("subId");
          if (subDeviceId == null) sessionHandle.drawTemperature(deviceId, timer, temperature);
          else sessionHandle.drawTemperature(deviceId, timer, temperature, subDeviceId.toString());
          break;
        case LOG_WARNING:
          timer = jsonMessage.getInt("time");
          subDeviceId = jsonMessage.getJsonString("subId");
          int subdeviceNo = jsonMessage.getInt("number");
          String deviceState = jsonMessage.getString("value");
          String msg;
          switch (subdeviceNo) {
            case 1:
              msg = ("0".equals(deviceState)) ? "Button release" : "Button clicked";
              break;
            case 2:
              msg = ("0".equals(deviceState)) ? "Cửa cuốn được cuộn lên" : "Đang thả cửa cuốn";
              break;
            default:
              msg = DEFAULT_ALERT_MSG;
              break;
          }
          if (subDeviceId == null) sessionHandle.doAlert(deviceId, timer, msg);
          else sessionHandle.doAlert(deviceId, timer, msg, subDeviceId.toString());
          break;
        case LOG_CONTROL:
          String state = jsonMessage.getString("light");
          subdeviceNo = jsonMessage.getInt("no");
          sessionHandle.updateLightState(deviceId, subdeviceNo, state);
          break;
        case LOG_ACK:
          subdeviceNo = jsonMessage.getInt("number");
          deviceState = jsonMessage.getString("value");
          state = ("0".equals(deviceState)) ? "off" : "on";
          sessionHandle.ackLightState(deviceId, subdeviceNo, state);
          break;
        case LOG_DEVICE_STATUS:
          JsonArray lstDevice = jsonMessage.getJsonArray("status");
          System.out.println("Update status:");
          for (int i = 0; i < lstDevice.size(); i++) {
            JsonObject device = (JsonObject) lstDevice.get(i);
            System.out.println(device.toString());
            subdeviceNo = device.getInt("no");
            int intState = device.getInt("value");
            state = (intState == 0) ? "off" : "on";
            sessionHandle.updateLightState(deviceId, subdeviceNo, state);
          }
          sessionHandle.finishUpdateDeviceStatus();
          break;
        default:
      }

    } catch (Exception ex) {
      System.out.println("Parse error");
      System.out.println(topic);
      System.out.println(mqttMessage);
      System.out.println(ex.getMessage());
    }
  }
예제 #24
0
  /** ************* Value tests * ************* */
  @Test
  public void testValues() {
    // Longs
    String[] objectsJson = {"[{}]", "[{}, {}]", "[{}, {}, {}]"};
    JsonObject[][] objectsEx = {
      {new JsonObject()},
      {new JsonObject(), new JsonObject()},
      {new JsonObject(), new JsonObject(), new JsonObject()}
    };
    for (int objectsJsoff = 0; objectsJsoff < objectsJson.length; objectsJsoff++) {
      String json = objectsJson[objectsJsoff];
      JsonObject[] ex = objectsEx[objectsJsoff];

      JsonArray parsed = new TestArray(json, false);
      assertEquals(ex.length, parsed.size());
      for (int e = 0; e < ex.length; e++) {
        // Valid
        assertEquals(ex[e], ((JsonObject) parsed.get(e)));
        assertEquals(ex[e], parsed.getObject(e));

        // Invalid
        invalidValueHelper(parsed, "getArray", e);
        invalidValueHelper(parsed, "getString", e);
        invalidValueHelper(parsed, "getLong", e);
        invalidValueHelper(parsed, "getInt", e);
        invalidValueHelper(parsed, "getDouble", e);
        invalidValueHelper(parsed, "getFloat", e);
        invalidValueHelper(parsed, "getBoolean", e);
      }
    }

    // Strings
    String[] stringsJson = {
      "[\"test1\"]", "[\"test1\", \"test2\"]", "[\"test1\", \"test2\", \"test3\"]"
    };
    String[][] stringsEx = {{"test1"}, {"test1", "test2"}, {"test1", "test2", "test3"}};
    for (int stringsJsoff = 0; stringsJsoff < stringsJson.length; stringsJsoff++) {
      String json = stringsJson[stringsJsoff];
      String[] ex = stringsEx[stringsJsoff];

      JsonArray parsed = new TestArray(json, false);
      assertEquals(ex.length, parsed.size());
      for (int e = 0; e < ex.length; e++) {
        // Valid
        assertEquals(ex[e], (String) parsed.get(e));
        assertEquals(ex[e], parsed.getString(e));

        // Invalid
        invalidValueHelper(parsed, "getObject", e);
        invalidValueHelper(parsed, "getArray", e);
        invalidValueHelper(parsed, "getLong", e);
        invalidValueHelper(parsed, "getInt", e);
        invalidValueHelper(parsed, "getDouble", e);
        invalidValueHelper(parsed, "getFloat", e);
        invalidValueHelper(parsed, "getBoolean", e);
      }
    }

    // Longs
    String[] longsJson = {"[1]", "[1, 2]", "[1, 2, 3]"};
    long[][] longsEx = {{1}, {1, 2}, {1, 2, 3}};
    for (int intsJsoff = 0; intsJsoff < longsJson.length; intsJsoff++) {
      String json = longsJson[intsJsoff];
      long[] ex = longsEx[intsJsoff];

      JsonArray parsed = new TestArray(json, false);
      assertEquals(ex.length, parsed.size());
      for (int e = 0; e < ex.length; e++) {
        // Valid
        assertEquals(ex[e], ((Long) parsed.get(e)).longValue());
        assertEquals(ex[e], parsed.getLong(e).longValue());
        assertEquals(ex[e], parsed.getInt(e).intValue());

        // Invalid
        invalidValueHelper(parsed, "getObject", e);
        invalidValueHelper(parsed, "getArray", e);
        invalidValueHelper(parsed, "getString", e);
        invalidValueHelper(parsed, "getDouble", e);
        invalidValueHelper(parsed, "getFloat", e);
        invalidValueHelper(parsed, "getBoolean", e);
      }
    }

    // Floats
    String[] floatsJson = {"[1.1]", "[1.1, 2.2f]", "[1.1, 2.2f, 3.3d]"};
    float[][] floatsEx = {{1.1f}, {1.1f, 2.2f}, {1.1f, 2.2f, 3.3f}};
    for (int floatsJsoff = 0; floatsJsoff < floatsJson.length; floatsJsoff++) {
      String json = floatsJson[floatsJsoff];
      float[] ex = floatsEx[floatsJsoff];

      JsonArray parsed = new TestArray(json, false);
      assertEquals(ex.length, parsed.size());
      for (int e = 0; e < ex.length; e++) {
        // Valid
        assertEquals(ex[e], ((Double) parsed.get(e)).doubleValue(), 0.01);
        assertEquals(ex[e], parsed.getDouble(e).doubleValue(), 0.01);
        assertEquals(ex[e], parsed.getFloat(e).floatValue(), 0.01f);

        // Invalid
        invalidValueHelper(parsed, "getObject", e);
        invalidValueHelper(parsed, "getArray", e);
        invalidValueHelper(parsed, "getString", e);
        invalidValueHelper(parsed, "getLong", e);
        invalidValueHelper(parsed, "getInt", e);
        invalidValueHelper(parsed, "getBoolean", e);
      }
    }

    // Booleans
    String[] boolJson = {"[true]", "[true, false]", "[true, false, true]"};
    boolean[][] boolEx = {{true}, {true, false}, {true, false, true}};
    for (int boolsJsoff = 0; boolsJsoff < boolJson.length; boolsJsoff++) {
      String json = boolJson[boolsJsoff];
      boolean[] ex = boolEx[boolsJsoff];

      JsonArray parsed = new TestArray(json, false);
      assertEquals(ex.length, parsed.size());
      for (int e = 0; e < ex.length; e++) {
        // Valid
        assertEquals(ex[e], ((Boolean) parsed.get(e)).booleanValue());
        assertEquals(ex[e], parsed.getBoolean(e).booleanValue());

        // Invalid
        invalidValueHelper(parsed, "getObject", e);
        invalidValueHelper(parsed, "getArray", e);
        invalidValueHelper(parsed, "getString", e);
        invalidValueHelper(parsed, "getLong", e);
        invalidValueHelper(parsed, "getInt", e);
        invalidValueHelper(parsed, "getDouble", e);
        invalidValueHelper(parsed, "getFloat", e);
      }
    }

    // Nulls
    String[] nullJson = {"[null]", "[null, null]", "[null, null, null]"};
    Object[][] nullEx = {
      {null}, {null, null}, {null, null, null}
    }; // Should I really be expecting anything else?
    for (int nullJsoff = 0; nullJsoff < nullJson.length; nullJsoff++) {
      String json = nullJson[nullJsoff];
      Object[] ex = nullEx[nullJsoff];

      JsonArray parsed = new TestArray(json, false);
      assertEquals(ex.length, parsed.size());
      for (int e = 0; e < ex.length; e++) {
        // Valid
        assertNull(parsed.get(e));
        assertNull(parsed.getObject(e));
        assertNull(parsed.getArray(e));
        assertNull(parsed.getString(e));
        assertNull(parsed.getLong(e));
        assertNull(parsed.getInt(e));
        assertNull(parsed.getDouble(e));
        assertNull(parsed.getFloat(e));
        assertNull(parsed.getBoolean(e));
      }
    }
  }
예제 #25
0
    public IChatComponent deserialize(
        JsonElement p_deserialize_1_,
        Type p_deserialize_2_,
        JsonDeserializationContext p_deserialize_3_) {
      if (p_deserialize_1_.isJsonPrimitive()) {
        return new ChatComponentText(p_deserialize_1_.getAsString());
      } else if (!p_deserialize_1_.isJsonObject()) {
        if (p_deserialize_1_.isJsonArray()) {
          JsonArray var11 = p_deserialize_1_.getAsJsonArray();
          IChatComponent var12 = null;
          Iterator var15 = var11.iterator();

          while (var15.hasNext()) {
            JsonElement var17 = (JsonElement) var15.next();
            IChatComponent var18 = this.deserialize(var17, var17.getClass(), p_deserialize_3_);

            if (var12 == null) {
              var12 = var18;
            } else {
              var12.appendSibling(var18);
            }
          }

          return var12;
        } else {
          throw new JsonParseException(
              "Don\'t know how to turn " + p_deserialize_1_.toString() + " into a Component");
        }
      } else {
        JsonObject var4 = p_deserialize_1_.getAsJsonObject();
        Object var5;

        if (var4.has("text")) {
          var5 = new ChatComponentText(var4.get("text").getAsString());
        } else if (var4.has("translate")) {
          String var6 = var4.get("translate").getAsString();

          if (var4.has("with")) {
            JsonArray var7 = var4.getAsJsonArray("with");
            Object[] var8 = new Object[var7.size()];

            for (int var9 = 0; var9 < var8.length; ++var9) {
              var8[var9] = this.deserialize(var7.get(var9), p_deserialize_2_, p_deserialize_3_);

              if (var8[var9] instanceof ChatComponentText) {
                ChatComponentText var10 = (ChatComponentText) var8[var9];

                if (var10.getChatStyle().isEmpty() && var10.getSiblings().isEmpty()) {
                  var8[var9] = var10.getChatComponentText_TextValue();
                }
              }
            }

            var5 = new ChatComponentTranslation(var6, var8);
          } else {
            var5 = new ChatComponentTranslation(var6, new Object[0]);
          }
        } else if (var4.has("score")) {
          JsonObject var13 = var4.getAsJsonObject("score");

          if (!var13.has("name") || !var13.has("objective")) {
            throw new JsonParseException("A score component needs a least a name and an objective");
          }

          var5 =
              new ChatComponentScore(
                  JsonUtils.getJsonObjectStringFieldValue(var13, "name"),
                  JsonUtils.getJsonObjectStringFieldValue(var13, "objective"));

          if (var13.has("value")) {
            ((ChatComponentScore) var5)
                .func_179997_b(JsonUtils.getJsonObjectStringFieldValue(var13, "value"));
          }
        } else {
          if (!var4.has("selector")) {
            throw new JsonParseException(
                "Don\'t know how to turn " + p_deserialize_1_.toString() + " into a Component");
          }

          var5 =
              new ChatComponentSelector(JsonUtils.getJsonObjectStringFieldValue(var4, "selector"));
        }

        if (var4.has("extra")) {
          JsonArray var14 = var4.getAsJsonArray("extra");

          if (var14.size() <= 0) {
            throw new JsonParseException("Unexpected empty array of components");
          }

          for (int var16 = 0; var16 < var14.size(); ++var16) {
            ((IChatComponent) var5)
                .appendSibling(
                    this.deserialize(var14.get(var16), p_deserialize_2_, p_deserialize_3_));
          }
        }

        ((IChatComponent) var5)
            .setChatStyle(
                (ChatStyle) p_deserialize_3_.deserialize(p_deserialize_1_, ChatStyle.class));
        return (IChatComponent) var5;
      }
    }
예제 #26
0
  @Override
  @SuppressWarnings("empty-statement")
  protected Clan doInBackground() throws Exception {
    if (bestMatch == null) { // use fallBack
      // URL URL = new
      // URL("http://worldoftanks."+gui.getServerRegion()+"/uc/clans/?type=table&offset=0&limit=10&order_by="+this.searchType+"&search="+this.clanTagName+"&echo=2&id=clans_index");
      // TODO: does API support orderBy ?!?
      URL URL =
          new URL(
              "http://worldoftanks."
                  + gui.getServerRegion()
                  + "/uc/clans/api/1.1/?source_token=Intellect_Soft-WoT_Mobile-unofficial_stats&search="
                  + this.fallbackInput.replace(" ", "%20")
                  + "&offset=0&limit=10");
      URLConnection URLConnection = URL.openConnection();
      URLConnection.setRequestProperty("Accept", "application/json, text/javascript, */*; q=0.01");
      URLConnection.setRequestProperty("Accept-Language", "en-us;q=0.5,en;q=0.3");
      URLConnection.setRequestProperty("Accept-Encoding", "paco");
      URLConnection.setRequestProperty("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7");
      URLConnection.setRequestProperty("Connection", "close");
      URLConnection.setRequestProperty("X-Requested-With", "XMLHttpRequest");
      // timeout after 10 seconds
      URLConnection.setConnectTimeout(10000);

      BufferedReader clanBufferedReader = null;
      StringBuilder data = new StringBuilder(3000);
      try {
        clanBufferedReader =
            new BufferedReader(new InputStreamReader(URLConnection.getInputStream(), "UTF8"));
        for (String line; (line = clanBufferedReader.readLine()) != null; data.append(line)) ;
      } finally {
        if (clanBufferedReader != null) clanBufferedReader.close();
      }

      JsonParser jsonParser = new JsonParser();
      JsonObject json = jsonParser.parse(data.toString()).getAsJsonObject();

      if (!"ok".equalsIgnoreCase(json.get("status").getAsString())) {
        throw new ClanAPIException(json.get("status_code").getAsString(), this.gui);
      }

      JsonArray results = json.get("data").getAsJsonObject().get("items").getAsJsonArray();
      JsonObject json_clan = null;
      for (JsonElement e : results) {
        JsonObject o = e.getAsJsonObject();
        if (fallbackInput.equalsIgnoreCase(o.get(this.searchType).getAsString())) {
          json_clan = o;
          break;
        }
      }
      if (json_clan == null) {
        throw new ClanNotFoundException(this.gui);
      }
      String name = json_clan.get("name").getAsString();
      String tag = json_clan.get("abbreviation").getAsString();
      long ID = json_clan.get("id").getAsLong();
      int member_count = json_clan.get("member_count").getAsInt();
      ImageIcon emblem =
          new ImageIcon(
              new URL("http://worldoftanks.eu" + json_clan.get("clan_emblem_url").getAsString()));
      bestMatch = new PossibleClan(name, tag, ID, member_count, emblem);
    }

    // get provinces
    GetProvinces provinceWorker = new GetProvinces(bestMatch.getID(), this.gui);
    provinceWorker.execute();

    // get members
    // URL = new
    // URL("http://worldoftanks."+gui.getServerRegion()+"/uc/clans/"+clanID+"/members/?type=table&offset=0&limit=100&order_by=name&search=&echo=1&id=clan_members_index");
    URL URL =
        new URL(
            "http://worldoftanks."
                + gui.getServerRegion()
                + "/uc/clans/"
                + bestMatch.getID()
                + "/api/1.1/?source_token=Intellect_Soft-WoT_Mobile-unofficial_stats");
    URLConnection URLConnection = URL.openConnection();
    URLConnection.setRequestProperty("Accept", "application/json, text/javascript, */*; q=0.01");
    URLConnection.setRequestProperty("Accept-Language", "en-us;q=0.5,en;q=0.3");
    URLConnection.setRequestProperty("Accept-Encoding", "paco");
    URLConnection.setRequestProperty("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7");
    URLConnection.setRequestProperty("Connection", "close");
    URLConnection.setRequestProperty("X-Requested-With", "XMLHttpRequest");
    // timeout after 15 seconds
    URLConnection.setConnectTimeout(15000);

    BufferedReader membersBufferedReader = null;
    StringBuilder members_data = new StringBuilder(10000);
    try {
      membersBufferedReader =
          new BufferedReader(new InputStreamReader(URLConnection.getInputStream(), "UTF8"));
      for (String line;
          (line = membersBufferedReader.readLine()) != null;
          members_data.append(line)) ;
    } finally {
      if (membersBufferedReader != null) membersBufferedReader.close();
    }

    JsonParser jsonParser = new JsonParser();
    JsonObject members_json = jsonParser.parse(members_data.toString()).getAsJsonObject();

    if (!"ok".equalsIgnoreCase(members_json.get("status").getAsString())) {
      throw new ClanAPIException(members_json.get("status_code").getAsString(), this.gui);
    }

    JsonArray members = members_json.get("data").getAsJsonObject().get("members").getAsJsonArray();

    GetPlayerData[] workers = new GetPlayerData[members.size()];
    players = new ArrayList<Player>(members.size());
    for (int i = 0; i < members.size(); i++) {
      JsonObject member = members.get(i).getAsJsonObject();
      workers[i] = new GetPlayerData(member.get("account_id").getAsLong(), this.gui);
      workers[i].execute();
    } // TODO: see if there's some sort of "worker pool" with a getAll() or getFirst()

    // In the meantime see if GetProvinces is ready
    this.provinces = provinceWorker.get();

    ArrayList<Vehicle> vehicles = new ArrayList<Vehicle>(5000);
    long start = System.currentTimeMillis();
    for (GetPlayerData w : workers) {
      Player p = w.get();
      players.add(p);
      vehicles.addAll(p.getVehicles());
      // TODO: update progress bar
      // TODO: sort by tier already here ?!? (implementation details)
    }
    vehicles.trimToSize();
    System.out.printf(
        "Vs:" + vehicles.size() + "\nOverall time: %dms%n", System.currentTimeMillis() - start);
    vehicles = Utils.sortVehiclesByTier(vehicles);
    vehicles = Utils.sortVehiclesByClass(vehicles);
    vehicles = Utils.sortVehiclesByNation(vehicles);

    if (players.size() > 20) { // some small logical optimizations
      double avg_top_eff = 0D, avg_eff = 0D, avg_top_wr = 0D, avg_wr = 0D;
      players = Utils.sortPlayersByEfficiency(players);
      for (int i = 0; i < players.size(); i++) {
        if (i == 20) avg_top_eff = avg_eff / 20D;
        avg_eff += players.get(i).getEfficiency();
      }
      avg_eff /= players.size();

      players = Utils.sortPlayersByWinrate(players);
      for (int i = 0; i < players.size(); i++) {
        if (i == 20) avg_top_wr = avg_wr / 20D;
        avg_wr += players.get(i).getAvg_wr();
      }
      avg_wr /= players.size();

      return new Clan(
          bestMatch.getName(),
          bestMatch.getClanTag(),
          bestMatch.getID(),
          players,
          vehicles,
          avg_wr,
          avg_top_wr,
          avg_eff,
          avg_top_eff,
          bestMatch.getEmblem());
    } else {
      double avg_eff = 0D, avg_wr = 0D; // top=all
      players = Utils.sortPlayersByEfficiency(players);
      for (int i = 0; i < players.size(); i++) {
        avg_eff += players.get(i).getEfficiency();
      }
      avg_eff /= players.size();

      players = Utils.sortPlayersByWinrate(players);
      for (int i = 0; i < players.size(); i++) {
        avg_wr += players.get(i).getAvg_wr();
      }
      avg_wr /= players.size();

      return new Clan(
          bestMatch.getName(),
          bestMatch.getClanTag(),
          bestMatch.getID(),
          players,
          vehicles,
          avg_wr,
          avg_wr,
          avg_eff,
          avg_eff,
          bestMatch.getEmblem());
    }
  }
  @Test
  public void TestGetReservationForFlights() {
    //        given().
    //                // use auth token for oauth v2 header
    //                        auth().oauth2(token).
    //                // make call to API
    //                        when().get("https://" + apiServiceBaseURL + "/api/api/flight")
    //                .then()
    //                .body("size()", greaterThanOrEqualTo(0));

    //      TODO - fraglich ob das so läuft
    String urlId = "http://localhost:8080/api/flights";
    String jsonId = given().get(urlId).getBody().print();

    JsonParser parser = new JsonParser();
    JsonArray arr = parser.parse(jsonId).getAsJsonArray();
    JsonElement jsonElement = arr.get(0);
    JsonObject jsonObject = jsonElement.getAsJsonObject();
    UUID testId = UUID.fromString(jsonObject.get("flightId").getAsString());

    //      TODO - Für welche FlightId sollen die Reservierungen angefragt werden??
    UUID id = UUID.fromString("76fc2e8d-7587-4a18-b2f8-33eeda154b8b");

    String url = "http://localhost:8080/api/tickets/flight/";

    //      TODO - hier muss die Id ggf. gewechselt werden
    String json = given().get(url + testId).getBody().print();

    //      Prüft die Länge des Arrays mit Flügen >= 1
    given().get(url).then().body("size()", greaterThan(0));

    //      Prüfen ob TicketId !=null ist
    given().get(url).then().body("get(0).ticketId", notNullValue());

    //      Prüfen ob TicketId ist instanceOf Integer
    given().get(url).then().body("get(0).ticketId", instanceOf(Integer.class));

    //      Prüfen ob passengerArray !=null ist
    given().get(url).then().body("get(0).passenger", notNullValue());

    //      Prüfen ob reservationArray !=null ist
    given().get(url).then().body("get(0).reservation", notNullValue());

    //      Prüfen ob in Reservation eine Buchungsart vorhanden ist
    given().get(url).then().body("get(0).reservation.reservationType", notNullValue());

    //      Prüft ob ReservationType vom Typ "Eco", "Busi" oder "First" ist
    //        given().get(url).then().body("get(0).reservation.reservationType", contains("Economy")
    // || contains("Business"));

    //      Prüfen ob in Reservation die ReservationId ist instanceOf Integer
    given().get(url).then().body("get(0).reservation.reservationId", instanceOf(Integer.class));

    //      Prüfen ob Bookingtype !=null ist
    given().get(url).then().body("get(0).bookingType", notNullValue());
    //      Prüfen ob TicketDate !=null ist
    given().get(url).then().body("get(0).ticketDate.length()", greaterThan(0));

    //      Prüfen ob in Reservation CheckedIn ist instanceOf Boolean
    //        given().get(url).then().body("get(0).reservation.checkedIn",
    // instanceOf(Boolean.class));
  }
예제 #28
0
파일: RFView.java 프로젝트: jayfans3/h2o
 @Override
 public String build(Response response, JsonObject cm, String contextName) {
   StringBuilder sb = new StringBuilder();
   if (cm.has(JSON_CM_MATRIX)) {
     sb.append("<h3>Confusion matrix - ")
         .append(cm.get(JSON_CM_TYPE).getAsString())
         .append("</h3>");
     sb.append("<dl class='dl-horizontal'>");
     sb.append("<dt>classification error</dt><dd>")
         .append(String.format("%5.3f %%", 100 * cm.get(JSON_CM_CLASS_ERR).getAsFloat()))
         .append("</dd>");
     long rows = cm.get(JSON_CM_ROWS).getAsLong();
     long skippedRows = cm.get(JSON_CM_ROWS_SKIPPED).getAsLong();
     sb.append("<dt>used / skipped rows </dt><dd>")
         .append(
             String.format(
                 "%d / %d (%3.1f %%)",
                 rows, skippedRows, (double) skippedRows * 100 / (skippedRows + rows)))
         .append("</dd>");
     sb.append("<dt>trees used</dt><dd>" + cm.get(JSON_CM_TREES).getAsInt()).append("</dd>");
     sb.append("</dl>");
     sb.append("<table class='table table-striped table-bordered table-condensed'>");
     sb.append("<tr><th>Actual \\ Predicted</th>");
     JsonArray header = (JsonArray) cm.get(JSON_CM_HEADER);
     for (JsonElement e : header) sb.append("<th>" + e.getAsString() + "</th>");
     sb.append("<th>Error</th></tr>");
     int classes = header.size();
     long[] totals = new long[classes];
     JsonArray matrix = (JsonArray) cm.get(JSON_CM_MATRIX);
     long sumTotal = 0;
     long sumError = 0;
     for (int crow = 0; crow < classes; ++crow) {
       JsonArray row = (JsonArray) matrix.get(crow);
       long total = 0;
       long error = 0;
       sb.append("<tr><th>" + header.get(crow).getAsString() + "</th>");
       for (int ccol = 0; ccol < classes; ++ccol) {
         long num = row.get(ccol).getAsLong();
         total += num;
         totals[ccol] += num;
         if (ccol == crow) {
           sb.append("<td style='background-color:LightGreen'>");
         } else {
           sb.append("<td>");
           error += num;
         }
         sb.append(num);
         sb.append("</td>");
       }
       sb.append("<td>");
       sb.append(String.format("%5.3f = %d / %d", (double) error / total, error, total));
       sb.append("</td></tr>");
       sumTotal += total;
       sumError += error;
     }
     sb.append("<tr><th>Totals</th>");
     for (int i = 0; i < totals.length; ++i) sb.append("<td>" + totals[i] + "</td>");
     sb.append("<td><b>");
     sb.append(
         String.format("%5.3f = %d / %d", (double) sumError / sumTotal, sumError, sumTotal));
     sb.append("</b></td></tr>");
     sb.append("</table>");
   } else {
     sb.append("<div class='alert alert-info'>");
     sb.append("Confusion matrix is being computed into the key:</br>");
     sb.append(cm.get(JSON_CONFUSION_KEY).getAsString());
     sb.append("</div>");
   }
   return sb.toString();
 }