Example usage for com.google.gson JsonObject addProperty

List of usage examples for com.google.gson JsonObject addProperty

Introduction

In this page you can find the example usage for com.google.gson JsonObject addProperty.

Prototype

public void addProperty(String property, Character value) 

Source Link

Document

Convenience method to add a char member.

Usage

From source file:be.uantwerpen.dc.studyassistant.StudyAssistant.java

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods.//from w  w w .ja  va2 s .com
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");

    String urlPath = request.getServletPath();

    if (urlPath.equalsIgnoreCase("/resources")) {

        ArrayList<Environment> lcs = this.getEnvironmentResources();

        Integer min = Integer.MAX_VALUE;
        Integer max = Integer.MIN_VALUE;
        for (Environment e : lcs) {
            if (e.getArduinoloudness() != null && e.getArduinoloudness() < min) {
                min = e.getArduinoloudness();
            }
            if (e.getArduinoloudness() != null && e.getArduinoloudness() > max) {
                max = e.getArduinoloudness();
            }
        }

        try (PrintWriter out = response.getWriter()) {
            /* TODO output your page here. You may use following sample code. */
            out.println("<!DOCTYPE html>");
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet StudyAssistant</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Servlet StudyAssistant at " + request.getContextPath() + "</h1>");
            for (Environment e : lcs) {
                out.println(e.toString());
            }

            out.println("Noise MAX: " + max);
            out.println("Noise MIN: " + min);

            out.println("</body>");
            out.println("</html>");
        }
    } else if (urlPath.equalsIgnoreCase("/resources/gauge")) {
        Environment lastRecord = this.getLastEnvironmentRecord();

        StudyIndex inx = new StudyIndex(lastRecord);
        double index = inx.getStudyIndex();
        index *= 100;

        index = Math.round(index * 100.0) / 100.0;

        JsonObject obj = new JsonObject();

        // create an array called cols
        JsonArray cols = new JsonArray();
        JsonArray rows = new JsonArray();
        JsonArray messages = new JsonArray();

        JsonObject col = new JsonObject();
        col.addProperty("id", "Index");
        col.addProperty("label", "Index");
        col.addProperty("type", "string");
        cols.add(col);

        JsonObject col2 = new JsonObject();
        col2.addProperty("id", "Value");
        col2.addProperty("label", "Value");
        col2.addProperty("type", "number");
        cols.add(col2);

        obj.add("cols", cols);

        JsonObject c = new JsonObject();
        JsonArray row = new JsonArray();

        JsonObject v1 = new JsonObject();
        v1.addProperty("v", "Index");
        row.add(v1);

        JsonObject v2 = new JsonObject();
        v2.addProperty("v", index);
        row.add(v2);

        c.add("c", row);

        rows.add(c);

        obj.add("rows", rows);

        String msg = "";
        if ((inx.alcoholIndex < 0.90) || (inx.methaneIndex < 0.90)) {
            msg += "Room needs better air circulation.";
            JsonObject msg1 = new JsonObject();
            msg1.addProperty("text", msg);
            messages.add(msg1);
        }

        JsonObject msg2 = new JsonObject();
        msg = "";
        if (lastRecord.getArduinolight() < StudyIndex.lightOptimalValue) {
            msg += "Increase room luminance!";
        } else if (lastRecord.getArduinolight() > StudyIndex.lightOptimalValue) {
            msg += "Lower room luminance!";
        } else {
            msg += "Room luminance is optimal!";
        }
        msg2.addProperty("text", msg);
        messages.add(msg2);

        JsonObject msg3 = new JsonObject();
        msg = "";
        if (lastRecord.getDs18b20temp() < StudyIndex.temperatureOptimalValue) {
            msg += "Increase room temperature!";
        } else if (lastRecord.getDs18b20temp() > StudyIndex.temperatureOptimalValue) {
            msg += "Lower room temperature!";
        } else {
            msg += "Room temperature is optimal!";
        }
        msg3.addProperty("text", msg);
        messages.add(msg3);

        JsonObject msg4 = new JsonObject();
        msg = "";
        if (lastRecord.getArduinoloudness() > StudyIndex.loudnessOptimalValue) {
            msg += "Room is too noisy!";
            msg4.addProperty("text", msg);
            messages.add(msg4);
        }

        JsonObject msg5 = new JsonObject();
        msg = "";
        if (lastRecord.getDs18b20temp() < StudyIndex.temperatureOptimalValue) {
            msg += "Humidity is less than optimal.";
        } else if (lastRecord.getDs18b20temp() > StudyIndex.temperatureOptimalValue) {
            msg += "Humidity is above optimal.";
        } else {
            msg += "Humidity is optimal!";
        }
        msg5.addProperty("text", msg);
        messages.add(msg5);

        obj.add("messages", messages);

        Gson gson = new GsonBuilder().setPrettyPrinting().serializeNulls()
                .setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE).create();

        response.setContentType("application/json");
        response.setCharacterEncoding("utf-8");

        PrintWriter out = response.getWriter();

        out.print(gson.toJson(obj));
    } else if (urlPath.equalsIgnoreCase("/resources/humidity")) {
        JsonObject obj = this.getCoreChartsJson("Humidity");
        this.printJson(obj, response);
    } else if (urlPath.equalsIgnoreCase("/resources/temperature")) {
        JsonObject obj = this.getCoreChartsJson("Temperature");
        this.printJson(obj, response);
    } else if (urlPath.equalsIgnoreCase("/resources/loudness")) {
        JsonObject obj = this.getCoreChartsJson("Loudness");
        this.printJson(obj, response);
    } else if (urlPath.equalsIgnoreCase("/resources/light")) {
        JsonObject obj = this.getCoreChartsJson("Light");
        this.printJson(obj, response);
    } else if (urlPath.equalsIgnoreCase("/resources/bubbleindex")) {
        JsonObject obj = this.getCoreChartsJson("Environment Index Score");
        this.printJson(obj, response);
    } else if (urlPath.equalsIgnoreCase("/resources/minmax")) {
        JsonObject obj = this.findMinMax();
        this.printJson(obj, response);
    }
}

From source file:be.uantwerpen.dc.studyassistant.StudyAssistant.java

private JsonObject getCoreChartsJson(String property) {

    ArrayList<Environment> envs = this.getEnvironmentResources();

    JsonObject obj = new JsonObject();

    // create an array called cols
    JsonArray cols = new JsonArray();
    JsonArray rows = new JsonArray();

    JsonObject col = new JsonObject();
    col.addProperty("id", "Time");
    col.addProperty("label", "Time");
    col.addProperty("type", "date");
    cols.add(col);/*from w  ww  .j  a va2  s .co m*/

    JsonObject col2 = new JsonObject();
    col2.addProperty("id", property);
    col2.addProperty("label", property);
    col2.addProperty("type", "number");
    cols.add(col2);

    obj.add("cols", cols);

    for (Environment e : envs) {
        JsonObject c = new JsonObject();
        JsonArray row = new JsonArray();

        JsonObject v1 = new JsonObject();
        v1.addProperty("v", "Date(" + e.getCreated().getTime() + ")");
        row.add(v1);

        JsonObject v2 = new JsonObject();

        if (property.equalsIgnoreCase("temperature")) {
            v2.addProperty("v", e.getDs18b20temp());
            row.add(v2);
            c.add("c", row);
            rows.add(c);
            obj.add("rows", rows);
        } else if (property.equalsIgnoreCase("humidity")) {
            v2.addProperty("v", e.getDht11hum());
            row.add(v2);
            c.add("c", row);
            rows.add(c);
            obj.add("rows", rows);
        } else if (property.equalsIgnoreCase("loudness")) {
            v2.addProperty("v", e.getArduinoloudness());
            row.add(v2);
            c.add("c", row);
            rows.add(c);
            obj.add("rows", rows);
        } else if (property.equalsIgnoreCase("light")) {
            v2.addProperty("v", e.getArduinolight());
            row.add(v2);
            c.add("c", row);
            rows.add(c);
            obj.add("rows", rows);
        } else if (property.equalsIgnoreCase("Environment Index Score")) {
            StudyIndex in = null;
            double index = 0;
            try {
                in = new StudyIndex(e);
                index = in.getStudyIndex();
            } catch (Exception exc) {
                //Logger.getLogger(StudyAssistant.class.getName()).log(Level.SEVERE, null, exc);                                                
            }
            v2.addProperty("v", index);
            row.add(v2);
            c.add("c", row);
            rows.add(c);
            obj.add("rows", rows);
        }
    }

    return obj;
}

From source file:be.uantwerpen.dc.studyassistant.StudyAssistant.java

private JsonObject findMinMax() {
    ArrayList<Environment> envs = this.getEnvironmentResources();

    Double minTemperature = Double.MAX_VALUE;
    Double maxTemperature = Double.MIN_NORMAL;

    Double minHumidity = Double.MAX_VALUE;
    Double maxHumidity = Double.MIN_NORMAL;

    Double minLoudness = Double.MAX_VALUE;
    Double maxLoudness = Double.MIN_NORMAL;

    Double minLight = Double.MAX_VALUE;
    Double maxLight = Double.MIN_NORMAL;

    Double minAlcohol = Double.MAX_VALUE;
    Double maxAlcohol = Double.MIN_NORMAL;

    Double minMethaine = Double.MAX_VALUE;
    Double maxMethaine = Double.MIN_NORMAL;

    Double minPressure = Double.MAX_VALUE;
    Double maxPressure = Double.MIN_NORMAL;

    for (Environment e : envs) {
        if (e.getDs18b20temp() != null && e.getDs18b20temp() < minTemperature) {
            minTemperature = Double.parseDouble(e.getDs18b20temp() + "");
        }//from ww w.j a v a2 s .c  om

        if (e.getDs18b20temp() != null && e.getDs18b20temp() > maxTemperature) {
            maxTemperature = Double.parseDouble(e.getDs18b20temp() + "");
        }

        if (e.getDht11hum() != null && e.getDht11hum() < minHumidity) {
            minHumidity = Double.parseDouble(e.getDht11hum() + "");
        }

        if (e.getDht11hum() != null && e.getDht11hum() > maxHumidity) {
            maxHumidity = Double.parseDouble(e.getDht11hum() + "");
        }

        if (e.getArduinolight() != null && e.getArduinolight() < minLight) {
            minLight = Double.parseDouble(e.getArduinolight() + "");
        }

        if (e.getArduinolight() != null && e.getArduinolight() > maxLight) {
            maxLight = Double.parseDouble(e.getArduinolight() + "");
        }

        if (e.getArduinoloudness() != null && e.getArduinoloudness() < minLoudness) {
            minLoudness = Double.parseDouble(e.getArduinoloudness() + "");
        }

        if (e.getArduinoloudness() != null && e.getArduinoloudness() > maxLoudness) {
            maxLoudness = Double.parseDouble(e.getArduinoloudness() + "");
        }

        if (e.getArduinoalcohol() != null && e.getArduinoalcohol() < minAlcohol) {
            minAlcohol = Double.parseDouble(e.getArduinoalcohol() + "");
        }

        if (e.getArduinoalcohol() != null && e.getArduinoalcohol() > maxAlcohol) {
            maxAlcohol = Double.parseDouble(e.getArduinoalcohol() + "");
        }

        if (e.getArduinomethaine() != null && e.getArduinomethaine() < minMethaine) {
            minMethaine = Double.parseDouble(e.getArduinomethaine() + "");
        }

        if (e.getArduinomethaine() != null && e.getArduinomethaine() > maxMethaine) {
            maxMethaine = Double.parseDouble(e.getArduinomethaine() + "");
        }

        if (e.getBmp180pressure() != null && e.getBmp180pressure() < minPressure) {
            minPressure = Double.parseDouble(e.getBmp180pressure() + "");
        }

        if (e.getBmp180pressure() != null && e.getBmp180pressure() > maxPressure) {
            maxPressure = Double.parseDouble(e.getBmp180pressure() + "");
        }

    }

    ArrayList<String> types = new ArrayList<String>();
    types.add("Temperature");
    types.add("Humidity");
    types.add("Loudness");
    types.add("Luminance");
    types.add("Alcohol");
    types.add("Methane");
    types.add("Pressure");

    JsonObject obj = new JsonObject();

    // create an array called cols
    JsonArray cols = new JsonArray();
    JsonArray rows = new JsonArray();

    JsonObject col = new JsonObject();
    col.addProperty("id", "Variable");
    col.addProperty("label", "Variable");
    col.addProperty("type", "string");
    cols.add(col);

    JsonObject col2 = new JsonObject();
    col2.addProperty("id", "Minimum");
    col2.addProperty("label", "Minimum");
    col2.addProperty("type", "number");
    cols.add(col2);

    JsonObject col3 = new JsonObject();
    col3.addProperty("id", "Maximum");
    col3.addProperty("label", "Maximum");
    col3.addProperty("type", "number");
    cols.add(col3);

    obj.add("cols", cols);

    for (String s : types) {
        JsonObject c = new JsonObject();
        JsonArray row = new JsonArray();

        JsonObject v1 = new JsonObject();
        v1.addProperty("v", s);
        row.add(v1);

        if (s.equalsIgnoreCase("temperature")) {
            JsonObject v2 = new JsonObject();
            v2.addProperty("v", minTemperature);
            row.add(v2);

            JsonObject v3 = new JsonObject();
            v3.addProperty("v", maxTemperature);
            row.add(v3);

            c.add("c", row);
            rows.add(c);
        } else if (s.equalsIgnoreCase("humidity")) {
            JsonObject v2 = new JsonObject();
            v2.addProperty("v", minHumidity);
            row.add(v2);

            JsonObject v3 = new JsonObject();
            v3.addProperty("v", maxHumidity);
            row.add(v3);

            c.add("c", row);
            rows.add(c);
        } else if (s.equalsIgnoreCase("loudness")) {
            JsonObject v2 = new JsonObject();
            v2.addProperty("v", minLoudness);
            row.add(v2);

            JsonObject v3 = new JsonObject();
            v3.addProperty("v", maxLoudness);
            row.add(v3);

            c.add("c", row);
            rows.add(c);
        } else if (s.equalsIgnoreCase("luminance")) {
            JsonObject v2 = new JsonObject();
            v2.addProperty("v", minLight);
            row.add(v2);

            JsonObject v3 = new JsonObject();
            v3.addProperty("v", maxLight);
            row.add(v3);

            c.add("c", row);
            rows.add(c);
        } else if (s.equalsIgnoreCase("alcohol")) {
            JsonObject v2 = new JsonObject();
            v2.addProperty("v", minAlcohol);
            row.add(v2);

            JsonObject v3 = new JsonObject();
            v3.addProperty("v", maxAlcohol);
            row.add(v3);

            c.add("c", row);
            rows.add(c);
        } else if (s.equalsIgnoreCase("methane")) {
            JsonObject v2 = new JsonObject();
            v2.addProperty("v", minMethaine);
            row.add(v2);

            JsonObject v3 = new JsonObject();
            v3.addProperty("v", maxMethaine);
            row.add(v3);

            c.add("c", row);
            rows.add(c);
        } else if (s.equalsIgnoreCase("pressure")) {
            JsonObject v2 = new JsonObject();
            v2.addProperty("v", minPressure);
            row.add(v2);

            JsonObject v3 = new JsonObject();
            v3.addProperty("v", maxPressure);
            row.add(v3);

            c.add("c", row);
            rows.add(c);
        }
    }

    obj.add("rows", rows);

    return obj;

}

From source file:beans.cart.Item.java

public String toStringJson() {
    JsonObject json = new JsonObject();

    json.addProperty("id", id);
    json.addProperty("quantity", quantity);
    json.addProperty("title", title);
    json.addProperty("price", price);
    json.addProperty("description", description);

    return json.toString();
}

From source file:beans.cart.SimpleCart.java

@Override
public String toStringJsonArray() {

    JsonArray jsonarr = new JsonArray();

    JsonObject job;
    for (Item item : items) {
        job = new JsonObject();
        job.addProperty("item", item.toStringJson());
        jsonarr.add(job);//from   w w w  .  j a  va2s.  co  m
    }

    return jsonarr.toString();
}

From source file:bisq.desktop.main.dao.governance.result.VoteResultView.java

License:Open Source License

private JsonElement getVotingHistoryJson() {
    JsonArray cyclesArray = new JsonArray();

    sortedCycleListItemList.sorted(Comparator.comparing(CycleListItem::getCycleStartTime))
            .forEach(cycleListItem -> {
                JsonObject cycleJson = new JsonObject();
                // No domain data, taken from UI model
                // TODO move the data structure needed for UI to core and use as pure domain model and use that here
                cycleJson.addProperty("cycleIndex", cycleListItem.getCycleIndex());
                cycleJson.addProperty("cycleDateTime", cycleListItem.getCycleDateTime(false));
                cycleJson.addProperty("votesCount", cycleListItem.getNumVotesAsString());
                cycleJson.addProperty("voteWeight", cycleListItem.getMeritAndStake());
                cycleJson.addProperty("issuance", cycleListItem.getIssuance());
                cycleJson.addProperty("startTime", cycleListItem.getCycleStartTime());
                cycleJson.addProperty("totalAcceptedVotes",
                        cycleListItem.getResultsOfCycle().getNumAcceptedVotes());
                cycleJson.addProperty("totalRejectedVotes",
                        cycleListItem.getResultsOfCycle().getNumRejectedVotes());

                JsonArray proposalsArray = new JsonArray();
                List<EvaluatedProposal> evaluatedProposals = cycleListItem.getResultsOfCycle()
                        .getEvaluatedProposals();
                evaluatedProposals.sort(Comparator.comparingLong(o -> o.getProposal().getCreationDate()));

                evaluatedProposals.forEach(evaluatedProp -> {
                    JsonObject proposalJson = new JsonObject();
                    proposalJson.addProperty("isAccepted",
                            evaluatedProp.isAccepted() ? "Accepted" : "Rejected");

                    // Proposal
                    Proposal proposal = evaluatedProp.getProposal();
                    proposalJson.addProperty("proposal.name", proposal.getName());
                    proposalJson.addProperty("proposal.link", proposal.getLink());
                    proposalJson.addProperty("proposal.version", proposal.getVersion());
                    proposalJson.addProperty("proposal.creationDate", proposal.getCreationDate());
                    proposalJson.addProperty("proposal.txId", proposal.getTxId());
                    proposalJson.addProperty("proposal.txType", proposal.getTxType().name());
                    proposalJson.addProperty("proposal.quorumParam", proposal.getQuorumParam().name());
                    proposalJson.addProperty("proposal.thresholdParam", proposal.getThresholdParam().name());
                    proposalJson.addProperty("proposal.proposalType", proposal.getType().name());

                    if (proposal.getExtraDataMap() != null)
                        proposalJson.addProperty("proposal.extraDataMap",
                                proposal.getExtraDataMap().toString());

                    switch (proposal.getType()) {
                    case UNDEFINED:
                        break;
                    case COMPENSATION_REQUEST:
                        CompensationProposal compensationProposal = (CompensationProposal) proposal;
                        proposalJson.addProperty("proposal.requestedBsq",
                                compensationProposal.getRequestedBsq().getValue());
                        proposalJson.addProperty("proposal.bsqAddress", compensationProposal.getBsqAddress());
                        break;
                    case REIMBURSEMENT_REQUEST:
                        ReimbursementProposal reimbursementProposal = (ReimbursementProposal) proposal;
                        proposalJson.addProperty("proposal.requestedBsq",
                                reimbursementProposal.getRequestedBsq().getValue());
                        proposalJson.addProperty("proposal.bsqAddress", reimbursementProposal.getBsqAddress());
                        break;
                    case CHANGE_PARAM:
                        ChangeParamProposal changeParamProposal = (ChangeParamProposal) proposal;
                        Param param = changeParamProposal.getParam();
                        proposalJson.addProperty("proposal.param", param.name());
                        proposalJson.addProperty("proposal.param.defaultValue", param.getDefaultValue());
                        proposalJson.addProperty("proposal.param.type", param.getParamType().name());
                        proposalJson.addProperty("proposal.param.maxDecrease", param.getMaxDecrease());
                        proposalJson.addProperty("proposal.param.maxIncrease", param.getMaxIncrease());
                        proposalJson.addProperty("proposal.paramValue", changeParamProposal.getParamValue());
                        break;
                    case BONDED_ROLE:
                        RoleProposal roleProposal = (RoleProposal) proposal;
                        Role role = roleProposal.getRole();
                        proposalJson.addProperty("proposal.requiredBondUnit",
                                roleProposal.getRequiredBondUnit());
                        proposalJson.addProperty("proposal.unlockTime", roleProposal.getUnlockTime());
                        proposalJson.addProperty("proposal.role.uid", role.getUid());
                        proposalJson.addProperty("proposal.role.name", role.getName());
                        proposalJson.addProperty("proposal.role.link", role.getLink());
                        BondedRoleType bondedRoleType = role.getBondedRoleType();
                        proposalJson.addProperty("proposal.bondedRoleType", bondedRoleType.name());
                        // bondedRoleType enum must not change anyway so we don't print it
                        break;
                    case CONFISCATE_BOND:
                        ConfiscateBondProposal confiscateBondProposal = (ConfiscateBondProposal) proposal;
                        proposalJson.addProperty("proposal.lockupTxId", confiscateBondProposal.getLockupTxId());
                        break;
                    case GENERIC:
                        // No extra fields
                        break;
                    case REMOVE_ASSET:
                        RemoveAssetProposal removeAssetProposal = (RemoveAssetProposal) proposal;
                        proposalJson.addProperty("proposal.tickerSymbol",
                                removeAssetProposal.getTickerSymbol());
                        break;
                    }// w  ww . j  a  va2  s . c  o m

                    ProposalVoteResult proposalVoteResult = evaluatedProp.getProposalVoteResult();
                    proposalJson.addProperty("stakeOfAcceptedVotes",
                            proposalVoteResult.getStakeOfAcceptedVotes());
                    proposalJson.addProperty("stakeOfRejectedVotes",
                            proposalVoteResult.getStakeOfRejectedVotes());
                    proposalJson.addProperty("numAcceptedVotes", proposalVoteResult.getNumAcceptedVotes());
                    proposalJson.addProperty("numRejectedVotes", proposalVoteResult.getNumRejectedVotes());
                    proposalJson.addProperty("numIgnoredVotes", proposalVoteResult.getNumIgnoredVotes());
                    proposalJson.addProperty("numActiveVotes", proposalVoteResult.getNumActiveVotes());
                    proposalJson.addProperty("quorum", proposalVoteResult.getQuorum());
                    proposalJson.addProperty("threshold", proposalVoteResult.getThreshold());

                    // Not part of pure domain data, but useful to add here
                    // required quorum and threshold for cycle for proposal type
                    proposalJson.addProperty("requiredQuorum",
                            proposalService.getRequiredQuorum(proposal).value);
                    proposalJson.addProperty("requiredThreshold",
                            proposalService.getRequiredThreshold(proposal));

                    // TODO provide better domain object as now we loop inside the loop. Use lookup map instead....
                    JsonArray votesArray = new JsonArray();
                    evaluatedProposals.stream()
                            .filter(evaluatedProposal -> evaluatedProposal.getProposal().equals(proposal))
                            .forEach(evaluatedProposal -> {
                                List<DecryptedBallotsWithMerits> decryptedVotesForCycle = cycleListItem
                                        .getResultsOfCycle().getDecryptedVotesForCycle();
                                // Make sure the votes are sorted so we can easier compare json files from different users
                                decryptedVotesForCycle.sort(
                                        Comparator.comparing(DecryptedBallotsWithMerits::getBlindVoteTxId));
                                decryptedVotesForCycle.forEach(decryptedBallotsWithMerits -> {
                                    JsonObject voteJson = new JsonObject();
                                    // Domain data of decryptedBallotsWithMerits
                                    voteJson.addProperty("hashOfBlindVoteList", Utilities.bytesAsHexString(
                                            decryptedBallotsWithMerits.getHashOfBlindVoteList()));
                                    voteJson.addProperty("blindVoteTxId",
                                            decryptedBallotsWithMerits.getBlindVoteTxId());
                                    voteJson.addProperty("voteRevealTxId",
                                            decryptedBallotsWithMerits.getVoteRevealTxId());
                                    voteJson.addProperty("stake", decryptedBallotsWithMerits.getStake());

                                    voteJson.addProperty("voteWeight",
                                            decryptedBallotsWithMerits.getMerit(daoStateService));
                                    String voteResult = decryptedBallotsWithMerits
                                            .getVote(evaluatedProp.getProposalTxId())
                                            .map(vote -> vote.isAccepted() ? "Accepted" : "Rejected")
                                            .orElse("Ignored");
                                    voteJson.addProperty("vote", voteResult);
                                    votesArray.add(voteJson);
                                });
                            });

                    proposalJson.addProperty("numberOfVotes", votesArray.size());
                    proposalJson.add("votes", votesArray);

                    proposalsArray.add(proposalJson);
                });
                cycleJson.addProperty("numberOfProposals", proposalsArray.size());
                cycleJson.add("proposals", proposalsArray);
                cyclesArray.add(cycleJson);
            });
    return cyclesArray;
}

From source file:blockplus.exports.ContextRepresentation.java

License:Open Source License

public JsonElement encodeBoard() {
    final JsonObject boardState = new JsonObject();
    final JsonObject meta = new JsonObject();
    final JsonObject data = new JsonObject();
    final Board board = this.context.board();
    final int rows = board.rows();
    final int columns = board.columns();
    meta.addProperty("rows", rows);
    meta.addProperty("columns", columns);
    final Set<Colors> colors = board.getColors();
    for (final Colors color : colors) {
        final JsonArray jsonArray = new JsonArray();
        for (final IPosition position : board.getSelves(color))
            jsonArray.add(new JsonPrimitive(columns * position.row() + position.column() % rows)); // TODO extract method
        data.add(color.toString(), jsonArray);
    }/*from  www.ja  v  a 2s .  com*/
    boardState.add("dimension", meta);
    boardState.add("cells", data);
    return boardState;
}

From source file:blockplus.exports.ContextRepresentation.java

License:Open Source License

@Override
public String toString() {
    final JsonObject data = new JsonObject();
    data.addProperty("color", this.context.side().toString());
    data.addProperty("isTerminal", this.context.isTerminal());
    data.add("board", this.encodeBoard());
    data.add("pieces", this.encodePieces());
    data.add("options", this.encodeOptions());
    return data.toString();
}

From source file:blockplus.exports.PiecesRepresentation.java

License:Open Source License

private static String _toJson() {
    final JsonArray pieces = new JsonArray();
    for (final Polyomino polyomino : Polyomino.set()) {
        final Iterable<IPosition> positions = polyomino.positions();
        if (positions.iterator().hasNext()) {
            final JsonArray data = new JsonArray();
            for (final IPosition position : positions) {
                final JsonObject jsonObject = new JsonObject();
                jsonObject.addProperty("y", position.row());
                jsonObject.addProperty("x", position.column());
                data.add(jsonObject);/*from  ww w. jav  a2  s.com*/
            }
            pieces.add(data);
        }
    }
    return pieces.toString();
}

From source file:blockplus.transport.BlockplusServer.java

License:Open Source License

public JsonObject games() {
    final JsonObject tables = new JsonObject();
    for (final IGame<Context> game : this.gameByOrdinal.values()) {
        if (game.isFull()) {
            boolean isAlive = false;
            for (final IClient client : game.getClients()) {
                final boolean isOpen = client.getEndpoint().isOpen();
                if (!isOpen)
                    this.disconnect(client.getEndpoint());
                isAlive = isAlive || isOpen;
            }/*from   w ww .jav  a2  s. co m*/
            if (!isAlive) {
                tables.addProperty("" + this.reset(game).getOrdinal(), this.reset(game).getClients().size());
            }
        } else {
            boolean isFullyAlive = true;
            boolean isFullyDead = true;
            for (final IClient client : game.getClients()) {
                final boolean isOpen = client.getEndpoint().isOpen();
                isFullyAlive = isFullyAlive && isOpen;
                isFullyDead = isFullyDead && !isOpen;
            }
            if (isFullyAlive) {
                tables.addProperty("" + game.getOrdinal(), game.getClients().size());
            } else if (isFullyDead) {
                tables.addProperty("" + this.reset(game).getOrdinal(), this.reset(game).getClients().size());
            }
        }
    }
    return tables;
}