Example usage for javax.json JsonObjectBuilder build

List of usage examples for javax.json JsonObjectBuilder build

Introduction

In this page you can find the example usage for javax.json JsonObjectBuilder build.

Prototype

JsonObject build();

Source Link

Document

Returns the JSON object associated with this object builder.

Usage

From source file:au.org.ands.vocabs.toolkit.db.PopulateAccessPoints.java

/**
 * Main program./*from ww  w . ja  va 2 s.c  o m*/
 * @param args Command-line arguments
 */
public static void main(final String[] args) {
    // Create prefixes that both end with a slash, so that
    // they can be substituted for each other.
    String sparqlPrefix = sparqlPrefixProperty;
    if (!sparqlPrefix.endsWith("/")) {
        sparqlPrefix += "/";
    }
    String sesamePrefix = sesamePrefixProperty;
    if (!sesamePrefix.endsWith("/")) {
        sesamePrefix += "/";
    }
    sesamePrefix += "repositories/";
    System.out.println("sparqlPrefix: " + sparqlPrefix);
    System.out.println("sesamePrefix: " + sesamePrefix);
    List<Version> versions = VersionUtils.getAllVersions();
    for (Version version : versions) {
        System.out.println(version.getId());
        System.out.println(version.getTitle());
        String data = version.getData();
        System.out.println(data);
        JsonNode dataJson = TaskUtils.jsonStringToTree(data);
        JsonNode accessPoints = dataJson.get("access_points");
        if (accessPoints != null) {
            System.out.println(accessPoints);
            System.out.println(accessPoints.size());
            for (JsonNode accessPoint : accessPoints) {
                System.out.println(accessPoint);
                AccessPoint ap = new AccessPoint();
                ap.setVersionId(version.getId());
                String type = accessPoint.get("type").asText();
                JsonObjectBuilder jobPortal = Json.createObjectBuilder();
                JsonObjectBuilder jobToolkit = Json.createObjectBuilder();
                String uri;
                switch (type) {
                case AccessPoint.FILE_TYPE:
                    ap.setType(type);
                    // Get the path from the original access point.
                    String filePath = accessPoint.get("uri").asText();
                    // Save the last component of the path to use
                    // in the portal URI.
                    String downloadFilename = Paths.get(filePath).getFileName().toString();
                    if (!filePath.startsWith("/")) {
                        // Relative path that we need to fix up manually.
                        filePath = "FIXME " + filePath;
                    }
                    jobToolkit.add("path", filePath);
                    ap.setPortalData("");
                    ap.setToolkitData(jobToolkit.build().toString());
                    // Persist what we have ...
                    AccessPointUtils.saveAccessPoint(ap);
                    // ... so that now we can get access to the
                    // ID of the persisted object with ap2.getId().
                    String format;
                    if (downloadFilename.endsWith(".trig")) {
                        // Force TriG. This is needed for some legacy
                        // cases where the filename is ".trig" but
                        // the format has been incorrectly recorded
                        // as RDF/XML.
                        format = "TriG";
                    } else {
                        format = accessPoint.get("format").asText();
                    }
                    jobPortal.add("format", format);
                    jobPortal.add("uri", downloadPrefixProperty + ap.getId() + "/" + downloadFilename);
                    ap.setPortalData(jobPortal.build().toString());
                    AccessPointUtils.updateAccessPoint(ap);
                    break;
                case AccessPoint.API_SPARQL_TYPE:
                    ap.setType(type);
                    uri = accessPoint.get("uri").asText();
                    jobPortal.add("uri", uri);
                    if (uri.startsWith(sparqlPrefix)) {
                        // One of ours, so also add a sesameDownload
                        // endpoint.
                        AccessPoint ap2 = new AccessPoint();
                        ap2.setVersionId(version.getId());
                        ap2.setType(AccessPoint.SESAME_DOWNLOAD_TYPE);
                        ap2.setPortalData("");
                        ap2.setToolkitData("");
                        // Persist what we have ...
                        AccessPointUtils.saveAccessPoint(ap2);
                        // ... so that now we can get access to the
                        // ID of the persisted object with ap2.getId().
                        JsonObjectBuilder job2Portal = Json.createObjectBuilder();
                        JsonObjectBuilder job2Toolkit = Json.createObjectBuilder();
                        job2Portal.add("uri", downloadPrefixProperty + ap2.getId() + "/"
                                + Download.downloadFilename(ap2, ""));
                        job2Toolkit.add("uri", uri.replaceFirst(sparqlPrefix, sesamePrefix));
                        ap2.setPortalData(job2Portal.build().toString());
                        ap2.setToolkitData(job2Toolkit.build().toString());
                        AccessPointUtils.updateAccessPoint(ap2);
                        jobPortal.add("source", AccessPoint.SYSTEM_SOURCE);
                    } else {
                        jobPortal.add("source", AccessPoint.USER_SOURCE);
                    }
                    ap.setPortalData(jobPortal.build().toString());
                    ap.setToolkitData(jobToolkit.build().toString());
                    AccessPointUtils.saveAccessPoint(ap);
                    break;
                case AccessPoint.WEBPAGE_TYPE:
                    uri = accessPoint.get("uri").asText();
                    if (uri.endsWith("concept/topConcepts")) {
                        ap.setType(AccessPoint.SISSVOC_TYPE);
                        jobPortal.add("source", AccessPoint.SYSTEM_SOURCE);
                        jobPortal.add("uri", uri.replaceFirst("/concept/topConcepts$", ""));
                    } else {
                        ap.setType(type);
                        jobPortal.add("uri", uri);
                    }
                    ap.setPortalData(jobPortal.build().toString());
                    ap.setToolkitData(jobToolkit.build().toString());
                    AccessPointUtils.saveAccessPoint(ap);
                    break;
                default:
                }
                System.out.println("type is: " + ap.getType());
                System.out.println("portal_data: " + ap.getPortalData());
                System.out.println("toolkit_data: " + ap.getToolkitData());
            }
        }
    }
}

From source file:org.jboss.set.aphrodite.stream.services.json.StreamsJsonParser.java

public static JsonObject encode(Collection<Stream> toEncode) {
    //TODO, come up with some check or do we trust us?
    //assert toEncode instanceof LinkedHashMap;// no hanky pankies, we need ordered list, we had, otherwise it will screw us.
    final JsonObjectBuilder rootBuilder = Json.createObjectBuilder();
    final JsonArrayBuilder array = encodeStreams(toEncode);
    rootBuilder.add(JSON_STREAMS, array);
    return rootBuilder.build();
}

From source file:au.org.ands.vocabs.toolkit.db.AccessPointUtils.java

/** Create an access point for a version, for a Sesame download.
 * Don't duplicate it, if it already exists.
 * @param version The version for which the access point is to be created.
 * @param toolkitUri The URI to put into the toolkitData.
 *//*from ww w  .j a v a  2 s  .c  om*/
public static void createSesameDownloadAccessPoint(final Version version, final String toolkitUri) {
    List<AccessPoint> aps = getAccessPointsForVersionAndType(version, AccessPoint.SESAME_DOWNLOAD_TYPE);
    for (AccessPoint ap : aps) {
        if (toolkitUri.equals(getToolkitUri(ap))) {
            // Already exists.
            return;
        }
    }
    // No existing access point for this file, so create a new one.
    AccessPoint ap = new AccessPoint();
    ap.setVersionId(version.getId());
    ap.setType(AccessPoint.SESAME_DOWNLOAD_TYPE);
    ap.setPortalData("");
    JsonObjectBuilder jobToolkit = Json.createObjectBuilder();
    jobToolkit.add("uri", toolkitUri);
    ap.setToolkitData(jobToolkit.build().toString());
    // Persist what we have ...
    AccessPointUtils.saveAccessPoint(ap);
    // ... so that now we can get access to the
    // ID of the persisted object with ap.getId().
    JsonObjectBuilder jobPortal = Json.createObjectBuilder();
    jobPortal.add("uri", downloadPrefixProperty + ap.getId() + "/" + Download.downloadFilename(ap, ""));
    ap.setPortalData(jobPortal.build().toString());
    AccessPointUtils.updateAccessPoint(ap);
}

From source file:au.org.ands.vocabs.toolkit.db.AccessPointUtils.java

/** Create an access point for a version, for a file. Don't duplicate it,
 * if it already exists./*from w  w w. jav a  2s . c om*/
 * @param version The version for which the access point is to be created.
 * @param format The format of the access point. If null, attempt
 * to deduce a format from the filename.
 * @param targetPath The path to the existing file.
 */
public static void createFileAccessPoint(final Version version, final String format, final Path targetPath) {
    String targetPathString;
    try {
        targetPathString = targetPath.toRealPath().toString();
    } catch (IOException e) {
        LOGGER.error("createFileAccessPoint failed calling " + "toRealPath() on file: " + targetPath.toString(),
                e);
        // Try toAbsolutePath() instead.
        targetPathString = targetPath.toAbsolutePath().toString();
    }
    List<AccessPoint> aps = getAccessPointsForVersionAndType(version, AccessPoint.FILE_TYPE);
    for (AccessPoint ap : aps) {
        if (targetPathString.equals(getToolkitPath(ap))) {
            // Already exists. Check the format.
            if (format != null && !format.equals(getFormat(ap))) {
                // Format changed.
                updateFormat(ap, format);
            }
            return;
        }
    }
    // No existing access point for this file, so create a new one.
    AccessPoint ap = new AccessPoint();
    ap.setVersionId(version.getId());
    ap.setType(AccessPoint.FILE_TYPE);
    JsonObjectBuilder jobPortal = Json.createObjectBuilder();
    JsonObjectBuilder jobToolkit = Json.createObjectBuilder();
    jobToolkit.add("path", targetPathString);
    // toolkitData is now done.
    ap.setToolkitData(jobToolkit.build().toString());
    ap.setPortalData("");
    // Persist what we have ...
    AccessPointUtils.saveAccessPoint(ap);
    // ... so that now we can get access to the
    // ID of the persisted object with ap.getId().
    String baseFilename = targetPath.getFileName().toString();
    jobPortal.add("uri", downloadPrefixProperty + ap.getId() + "/" + baseFilename);
    // Now work on the format. The following is messy. It's really very
    // much for the best if the portal provides the format.
    String deducedFormat;
    if (format == null) {
        // The format was not provided to us, so try to deduce it.
        // First, try the extension.
        String extension = FilenameUtils.getExtension(baseFilename);
        deducedFormat = EXTENSION_TO_FILE_FORMAT_MAP.get(extension);
        if (deducedFormat == null) {
            // No luck with the extension, so try probing.
            try {
                String mimeType = Files.probeContentType(targetPath);
                if (mimeType == null) {
                    // Give up.
                    deducedFormat = "Unknown";
                } else {
                    deducedFormat = MIMETYPE_TO_FILE_FORMAT_MAP.get(mimeType);
                    if (deducedFormat == null) {
                        // Give up.
                        deducedFormat = "Unknown";
                    }
                }
            } catch (IOException e) {
                LOGGER.error("createFileAccessPoint failed to get " + "MIME type of file: " + targetPathString,
                        e);
                // Give up.
                deducedFormat = "Unknown";
            }
        }
    } else {
        // The format was provided to us, so use that. Much easier.
        deducedFormat = format;
    }
    jobPortal.add("format", deducedFormat);
    // portalData is now complete.
    ap.setPortalData(jobPortal.build().toString());
    AccessPointUtils.updateAccessPoint(ap);
}

From source file:au.org.ands.vocabs.toolkit.db.AccessPointUtils.java

/** Create an access point for a version, for a SPARQL endpoint.
 * Don't duplicate it, if it already exists.
 * @param version The version for which the access point is to be created.
 * @param portalUri The URI to put into the portalData.
 * @param source The source of the endpoint, either SYSTEM_SOURCE
 * or USER_SOURCE.//  w  w  w  .ja va2  s .co m
 */
public static void createApiSparqlAccessPoint(final Version version, final String portalUri,
        final String source) {
    List<AccessPoint> aps = getAccessPointsForVersionAndType(version, AccessPoint.API_SPARQL_TYPE);
    for (AccessPoint ap : aps) {
        if (portalUri.equals(getPortalUri(ap))) {
            // Already exists. Don't bother checking the source.
            return;
        }
    }
    // No existing access point for this file, so create a new one.
    AccessPoint ap = new AccessPoint();
    ap.setVersionId(version.getId());
    ap.setType(AccessPoint.API_SPARQL_TYPE);
    JsonObjectBuilder jobPortal = Json.createObjectBuilder();
    JsonObjectBuilder jobToolkit = Json.createObjectBuilder();
    jobPortal.add("uri", portalUri);
    jobPortal.add("source", source);
    ap.setPortalData(jobPortal.build().toString());
    ap.setToolkitData(jobToolkit.build().toString());
    AccessPointUtils.saveAccessPoint(ap);
}

From source file:au.org.ands.vocabs.toolkit.db.AccessPointUtils.java

/** Create a sissvoc access point for a version.
 * Don't duplicate it, if it already exists.
 * @param version The version for which the access point is to be created.
 * @param portalUri The URI to put into the portalData.
 * @param source The source of the endpoint, either SYSTEM_SOURCE
 * or USER_SOURCE./* ww w. j  ava2 s .  c om*/
 */
public static void createSissvocAccessPoint(final Version version, final String portalUri,
        final String source) {
    List<AccessPoint> aps = getAccessPointsForVersionAndType(version, AccessPoint.SISSVOC_TYPE);
    for (AccessPoint ap : aps) {
        if (portalUri.equals(getPortalUri(ap))) {
            // Already exists. Don't bother checking the source.
            return;
        }
    }
    // No existing access point for this file, so create a new one.
    AccessPoint ap = new AccessPoint();
    ap.setVersionId(version.getId());
    ap.setType(AccessPoint.SISSVOC_TYPE);
    JsonObjectBuilder jobPortal = Json.createObjectBuilder();
    JsonObjectBuilder jobToolkit = Json.createObjectBuilder();
    jobPortal.add("uri", portalUri);
    jobPortal.add("source", source);
    ap.setPortalData(jobPortal.build().toString());
    ap.setToolkitData(jobToolkit.build().toString());
    AccessPointUtils.saveAccessPoint(ap);
}

From source file:org.jboss.set.aphrodite.stream.services.json.StreamComponentJsonParser.java

public static JsonObject encodeStreamComponent(StreamComponent c) {
    final JsonObjectBuilder object = Json.createObjectBuilder();
    object.add(JSON_NAME, c.getName());//from w  w w. ja  v a 2 s  .c o m
    object.add(JSON_CONTACTS, encodeContacts(c.getContacts()));
    object.add(JSON_REPOSITORY_TYPE, c.getRepositoryType().toString());
    object.add(JSON_REPOSITORY_URL, c.getRepositoryURL() == null ? "" : c.getRepositoryURL().toString());
    object.add(JSON_CODEBASE, c.getCodebase().getName());
    object.add(JSON_TAG, c.getTag());
    object.add(JSON_VERSION, c.getVersion());
    object.add(JSON_GAV, c.getGAV());
    object.add(JSON_COMMENT, c.getComment());
    return object.build();
}

From source file:au.org.ands.vocabs.toolkit.db.AccessPointUtils.java

/** Update the portal's format setting for a file access point.
 * @param ap the access point/*from  ww  w. j av  a  2 s.c o m*/
 * @param newFormat the access point's new format setting,
 * or null otherwise.
 */
public static void updateFormat(final AccessPoint ap, final String newFormat) {
    if (!"file".equals(ap.getType())) {
        // Not the right type.
        return;
    }
    JsonNode dataJson = TaskUtils.jsonStringToTree(ap.getPortalData());
    JsonObjectBuilder jobPortal = Json.createObjectBuilder();
    Iterator<Entry<String, JsonNode>> dataJsonIterator = dataJson.fields();
    while (dataJsonIterator.hasNext()) {
        Entry<String, JsonNode> entry = dataJsonIterator.next();
        jobPortal.add(entry.getKey(), entry.getValue().asText());
    }
    jobPortal.add("format", newFormat);
    ap.setPortalData(jobPortal.build().toString());
    updateAccessPoint(ap);
}

From source file:org.dcm4che3.tool.qc.QC.java

private static JsonObject toIssuerObject(Issuer issuer) {
    JsonObjectBuilder builder = Json.createObjectBuilder().add("localNamespaceEntityID",
            emptyIfNull(issuer.getLocalNamespaceEntityID()));
    if (issuer.getUniversalEntityID() != null)
        builder.add("universalEntityID", emptyIfNull(issuer.getUniversalEntityID()))
                .add("universalEntityIDType", emptyIfNull(issuer.getUniversalEntityIDType()));
    return builder.build();
}

From source file:org.dcm4che3.tool.qc.QC.java

private static JsonObject toCodeObject(Code qcRejectionCode) {
    JsonObjectBuilder codeBuilder = Json.createObjectBuilder()
            .add("codeValue", emptyIfNull(qcRejectionCode.getCodeValue()))
            .add("codeMeaning", emptyIfNull(qcRejectionCode.getCodeMeaning()))
            .add("codingSchemeDesignator", emptyIfNull(qcRejectionCode.getCodingSchemeDesignator()));
    if (qcRejectionCode.getCodingSchemeVersion() != null)
        codeBuilder.add("codingSchemeVersion", qcRejectionCode.getCodingSchemeVersion());
    return codeBuilder.build();
}