Example usage for com.google.gson.stream JsonReader nextName

List of usage examples for com.google.gson.stream JsonReader nextName

Introduction

In this page you can find the example usage for com.google.gson.stream JsonReader nextName.

Prototype

public String nextName() throws IOException 

Source Link

Document

Returns the next token, a com.google.gson.stream.JsonToken#NAME property name , and consumes it.

Usage

From source file:org.mitre.openid.connect.web.DataAPI.java

License:Apache License

@RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
public String importData(Reader in, Model m) throws IOException {

    JsonReader reader = new JsonReader(in);

    reader.beginObject();/*from  w ww.j a va 2 s  .  co m*/

    while (reader.hasNext()) {
        JsonToken tok = reader.peek();
        switch (tok) {
        case NAME:
            String name = reader.nextName();

            if (supportedVersions.contains(name)) {
                // we're working with a known data version tag
                for (MITREidDataService dataService : importers) {
                    // dispatch to the correct service
                    if (dataService.supportsVersion(name)) {
                        dataService.importData(reader);
                        break;
                    }
                }
            } else {
                // consume the next bit silently for now
                logger.debug("Skipping value for " + name); // TODO: write these out?
                reader.skipValue();
            }
            break;
        case END_OBJECT:
            break;
        case END_DOCUMENT:
            break;
        }
    }

    reader.endObject();

    return "httpCodeView";
}

From source file:org.mitre.uma.service.impl.UmaDataServiceExtension_1_3.java

License:Apache License

/**
 * @param reader//from  w w w.  j  a va  2 s  .c  o m
 */
private void readTokenPermissions(JsonReader reader) throws IOException {
    reader.beginArray();
    while (reader.hasNext()) {
        reader.beginObject();
        Long tokenId = null;
        Set<Long> permissions = new HashSet<>();
        while (reader.hasNext()) {
            switch (reader.peek()) {
            case END_OBJECT:
                continue;
            case NAME:
                String name = reader.nextName();
                if (name.equals(TOKEN_ID)) {
                    tokenId = reader.nextLong();
                } else if (name.equals(PERMISSIONS)) {
                    reader.beginArray();
                    while (reader.hasNext()) {
                        Permission p = new Permission();
                        Long rsid = null;
                        Set<String> scope = new HashSet<>();
                        reader.beginObject();
                        while (reader.hasNext()) {
                            switch (reader.peek()) {
                            case END_OBJECT:
                                continue;
                            case NAME:
                                String pname = reader.nextName();
                                if (reader.peek() == JsonToken.NULL) {
                                    reader.skipValue();
                                } else if (pname.equals(RESOURCE_SET)) {
                                    rsid = reader.nextLong();
                                } else if (pname.equals(SCOPES)) {
                                    scope = readSet(reader);
                                } else {
                                    logger.debug("Found unexpected entry");
                                    reader.skipValue();
                                }
                                break;
                            default:
                                logger.debug("Found unexpected entry");
                                reader.skipValue();
                                continue;
                            }
                        }
                        reader.endObject();
                        p.setScopes(scope);
                        Permission saved = permissionRepository.saveRawPermission(p);
                        permissionToResourceRefs.put(saved.getId(), rsid);
                        permissions.add(saved.getId());
                    }
                    reader.endArray();
                }
                break;
            default:
                logger.debug("Found unexpected entry");
                reader.skipValue();
                continue;
            }
        }
        reader.endObject();
        tokenToPermissionRefs.put(tokenId, permissions);
    }
    reader.endArray();

}

From source file:org.mitre.uma.service.impl.UmaDataServiceExtension_1_3.java

License:Apache License

/**
 * @param reader/*from  w  ww .j  a  v a 2 s .c  om*/
 */
private void readPermissionTickets(JsonReader reader) throws IOException {
    JsonParser parser = new JsonParser();
    reader.beginArray();
    while (reader.hasNext()) {
        PermissionTicket ticket = new PermissionTicket();
        reader.beginObject();
        while (reader.hasNext()) {
            switch (reader.peek()) {
            case END_OBJECT:
                continue;
            case NAME:
                String name = reader.nextName();
                if (reader.peek() == JsonToken.NULL) {
                    reader.skipValue();
                } else if (name.equals(CLAIMS_SUPPLIED)) {
                    Set<Claim> claimsSupplied = new HashSet<>();
                    reader.beginArray();
                    while (reader.hasNext()) {
                        Claim c = new Claim();
                        reader.beginObject();
                        while (reader.hasNext()) {
                            switch (reader.peek()) {
                            case END_OBJECT:
                                continue;
                            case NAME:
                                String cname = reader.nextName();
                                if (reader.peek() == JsonToken.NULL) {
                                    reader.skipValue();
                                } else if (cname.equals(ISSUER)) {
                                    c.setIssuer(readSet(reader));
                                } else if (cname.equals(CLAIM_TOKEN_FORMAT)) {
                                    c.setClaimTokenFormat(readSet(reader));
                                } else if (cname.equals(CLAIM_TYPE)) {
                                    c.setClaimType(reader.nextString());
                                } else if (cname.equals(FRIENDLY_NAME)) {
                                    c.setFriendlyName(reader.nextString());
                                } else if (cname.equals(NAME)) {
                                    c.setName(reader.nextString());
                                } else if (cname.equals(VALUE)) {
                                    JsonElement e = parser.parse(reader.nextString());
                                    c.setValue(e);
                                } else {
                                    logger.debug("Found unexpected entry");
                                    reader.skipValue();
                                }
                                break;
                            default:
                                logger.debug("Found unexpected entry");
                                reader.skipValue();
                                continue;
                            }
                        }
                        reader.endObject();
                        claimsSupplied.add(c);
                    }
                    reader.endArray();
                    ticket.setClaimsSupplied(claimsSupplied);
                } else if (name.equals(EXPIRATION)) {
                    ticket.setExpiration(utcToDate(reader.nextString()));
                } else if (name.equals(PERMISSION)) {
                    Permission p = new Permission();
                    Long rsid = null;
                    reader.beginObject();
                    while (reader.hasNext()) {
                        switch (reader.peek()) {
                        case END_OBJECT:
                            continue;
                        case NAME:
                            String pname = reader.nextName();
                            if (reader.peek() == JsonToken.NULL) {
                                reader.skipValue();
                            } else if (pname.equals(RESOURCE_SET)) {
                                rsid = reader.nextLong();
                            } else if (pname.equals(SCOPES)) {
                                p.setScopes(readSet(reader));
                            } else {
                                logger.debug("Found unexpected entry");
                                reader.skipValue();
                            }
                            break;
                        default:
                            logger.debug("Found unexpected entry");
                            reader.skipValue();
                            continue;
                        }
                    }
                    reader.endObject();
                    Permission saved = permissionRepository.saveRawPermission(p);
                    permissionToResourceRefs.put(saved.getId(), rsid);
                    ticket.setPermission(saved);
                } else if (name.equals(TICKET)) {
                    ticket.setTicket(reader.nextString());
                } else {
                    logger.debug("Found unexpected entry");
                    reader.skipValue();
                }
                break;
            default:
                logger.debug("Found unexpected entry");
                reader.skipValue();
                continue;
            }
        }
        reader.endObject();
        permissionRepository.save(ticket);
    }
    reader.endArray();
}

From source file:org.mitre.uma.service.impl.UmaDataServiceExtension_1_3.java

License:Apache License

/**
 * @param reader//from www .  j a  va  2  s  .c o  m
 */
private void readResourceSets(JsonReader reader) throws IOException {
    JsonParser parser = new JsonParser();
    reader.beginArray();
    while (reader.hasNext()) {
        Long oldId = null;
        ResourceSet rs = new ResourceSet();
        reader.beginObject();
        while (reader.hasNext()) {
            switch (reader.peek()) {
            case END_OBJECT:
                continue;
            case NAME:
                String name = reader.nextName();
                if (reader.peek() == JsonToken.NULL) {
                    reader.skipValue();
                } else if (name.equals(ID)) {
                    oldId = reader.nextLong();
                } else if (name.equals(CLIENT_ID)) {
                    rs.setClientId(reader.nextString());
                } else if (name.equals(ICON_URI)) {
                    rs.setIconUri(reader.nextString());
                } else if (name.equals(NAME)) {
                    rs.setName(reader.nextString());
                } else if (name.equals(TYPE)) {
                    rs.setType(reader.nextString());
                } else if (name.equals(URI)) {
                    rs.setUri(reader.nextString());
                } else if (name.equals(OWNER)) {
                    rs.setOwner(reader.nextString());
                } else if (name.equals(POLICIES)) {
                    Set<Policy> policies = new HashSet<>();
                    reader.beginArray();
                    while (reader.hasNext()) {
                        Policy p = new Policy();
                        reader.beginObject();
                        while (reader.hasNext()) {
                            switch (reader.peek()) {
                            case END_OBJECT:
                                continue;
                            case NAME:
                                String pname = reader.nextName();
                                if (reader.peek() == JsonToken.NULL) {
                                    reader.skipValue();
                                } else if (pname.equals(NAME)) {
                                    p.setName(reader.nextString());
                                } else if (pname.equals(SCOPES)) {
                                    p.setScopes(readSet(reader));
                                } else if (pname.equals(CLAIMS_REQUIRED)) {
                                    Set<Claim> claimsRequired = new HashSet<>();
                                    reader.beginArray();
                                    while (reader.hasNext()) {
                                        Claim c = new Claim();
                                        reader.beginObject();
                                        while (reader.hasNext()) {
                                            switch (reader.peek()) {
                                            case END_OBJECT:
                                                continue;
                                            case NAME:
                                                String cname = reader.nextName();
                                                if (reader.peek() == JsonToken.NULL) {
                                                    reader.skipValue();
                                                } else if (cname.equals(ISSUER)) {
                                                    c.setIssuer(readSet(reader));
                                                } else if (cname.equals(CLAIM_TOKEN_FORMAT)) {
                                                    c.setClaimTokenFormat(readSet(reader));
                                                } else if (cname.equals(CLAIM_TYPE)) {
                                                    c.setClaimType(reader.nextString());
                                                } else if (cname.equals(FRIENDLY_NAME)) {
                                                    c.setFriendlyName(reader.nextString());
                                                } else if (cname.equals(NAME)) {
                                                    c.setName(reader.nextString());
                                                } else if (cname.equals(VALUE)) {
                                                    JsonElement e = parser.parse(reader.nextString());
                                                    c.setValue(e);
                                                } else {
                                                    logger.debug("Found unexpected entry");
                                                    reader.skipValue();
                                                }
                                                break;
                                            default:
                                                logger.debug("Found unexpected entry");
                                                reader.skipValue();
                                                continue;
                                            }
                                        }
                                        reader.endObject();
                                        claimsRequired.add(c);
                                    }
                                    reader.endArray();
                                    p.setClaimsRequired(claimsRequired);
                                } else {
                                    logger.debug("Found unexpected entry");
                                    reader.skipValue();
                                }
                                break;
                            default:
                                logger.debug("Found unexpected entry");
                                reader.skipValue();
                                continue;
                            }
                        }
                        reader.endObject();
                        policies.add(p);
                    }
                    reader.endArray();
                    rs.setPolicies(policies);
                } else if (name.equals(SCOPES)) {
                    rs.setScopes(readSet(reader));
                } else {
                    logger.debug("Found unexpected entry");
                    reader.skipValue();
                }
                break;
            default:
                logger.debug("Found unexpected entry");
                reader.skipValue();
                continue;
            }
        }
        reader.endObject();
        Long newId = resourceSetRepository.save(rs).getId();
        resourceSetOldToNewIdMap.put(oldId, newId);
    }
    reader.endArray();
    logger.info("Done reading resource sets");
}

From source file:org.mitre.uma.service.impl.UmaDataServiceExtension_1_3.java

License:Apache License

/**
 * @param reader//from   ww w  .j a  va 2 s  . co m
 */
private void readSavedRegisteredClients(JsonReader reader) throws IOException {
    reader.beginArray();
    while (reader.hasNext()) {
        String issuer = null;
        String clientString = null;
        reader.beginObject();
        while (reader.hasNext()) {
            switch (reader.peek()) {
            case END_OBJECT:
                continue;
            case NAME:
                String name = reader.nextName();
                if (reader.peek() == JsonToken.NULL) {
                    reader.skipValue();
                } else if (name.equals(ISSUER)) {
                    issuer = reader.nextString();
                } else if (name.equals(REGISTERED_CLIENT)) {
                    clientString = reader.nextString();
                } else {
                    logger.debug("Found unexpected entry");
                    reader.skipValue();
                }
                break;
            default:
                logger.debug("Found unexpected entry");
                reader.skipValue();
                continue;
            }
        }
        reader.endObject();
        RegisteredClient client = ClientDetailsEntityJsonProcessor.parseRegistered(clientString);
        registeredClientService.save(issuer, client);
        logger.debug("Saved registered client");
    }
    reader.endArray();
    logger.info("Done reading saved registered clients");
}

From source file:org.mitre.util.JsonUtils.java

License:Apache License

public static Map readMap(JsonReader reader) throws IOException {
    Map map = new HashMap<>();
    reader.beginObject();// www . ja va 2 s  . c  om
    while (reader.hasNext()) {
        String name = reader.nextName();
        Object value = null;
        switch (reader.peek()) {
        case STRING:
            value = reader.nextString();
            break;
        case BOOLEAN:
            value = reader.nextBoolean();
            break;
        case NUMBER:
            value = reader.nextLong();
            break;
        default:
            logger.debug("Found unexpected entry");
            reader.skipValue();
            continue;
        }
        map.put(name, value);
    }
    reader.endObject();
    return map;
}

From source file:org.mule.runtime.extension.internal.persistence.ModelPropertyMapTypeAdapter.java

License:Open Source License

@Override
public HierarchyClassMap<ModelProperty> read(JsonReader in) throws IOException {
    final HierarchyClassMap<ModelProperty> modelPropertyHashMap = new HierarchyClassMap<>();

    in.beginObject();/*  www  . j a va  2 s  .  c  o  m*/
    while (in.hasNext()) {

        final Class<? extends ModelProperty> type = getClassForModelProperty(in.nextName());
        final TypeAdapter<?> adapter = gson.getAdapter(type);
        final ModelProperty read = (ModelProperty) adapter.read(in);
        modelPropertyHashMap.put(type, read);
    }
    in.endObject();
    return modelPropertyHashMap;
}

From source file:org.mythdroid.services.GuideService.java

License:Open Source License

/**
 * Get ProgramGuide data//w w w .j a  v a 2 s  .  c o m
 * @param start Date for start of data
 * @param end Date for end of data
 * @return ArrayList of Channels
 */
public ArrayList<Channel> GetProgramGuide(Date start, Date end) throws IOException {

    final Params params = new Params();
    params.put("StartTime", Globals.utcFormat(start)); //$NON-NLS-1$
    params.put("EndTime", Globals.utcFormat(end)); //$NON-NLS-1$
    params.put("StartChanId", 0); //$NON-NLS-1$
    params.put("NumChannels", -1); //$NON-NLS-1$
    params.put("Details", "true"); //$NON-NLS-1$ //$NON-NLS-2$

    InputStream is = jc.GetStream("GetProgramGuide", params); //$NON-NLS-1$
    JsonReader jreader = new JsonReader(new BufferedReader(new InputStreamReader(is, "UTF-8")) //$NON-NLS-1$
    );

    ArrayList<Channel> channels = new ArrayList<Channel>();

    jreader.beginObject();
    skipTo(jreader, JsonToken.BEGIN_OBJECT);
    jreader.beginObject();
    skipTo(jreader, JsonToken.NAME);
    while (jreader.hasNext()) {
        String name = jreader.nextName();
        if (name.equals("NumOfChannels")) { //$NON-NLS-1$
            channels.ensureCapacity(jreader.nextInt());
            break;
        }
        jreader.skipValue();
    }
    skipTo(jreader, JsonToken.BEGIN_ARRAY);
    jreader.beginArray();
    while (jreader.hasNext()) {
        jreader.beginObject();
        channels.add((Channel) gson.fromJson(jreader, Channel.class));
        jreader.endObject();
    }
    jreader.endArray();
    jreader.endObject();
    jreader.endObject();
    jreader.close();
    jc.endStream();

    return channels;

}

From source file:org.netscan.core.json.CredentialJsonAdapter.java

License:Open Source License

@Override
public Credential read(JsonReader in) throws IOException {
    in.beginObject();/*from w  ww  .j a  va 2s .  co m*/
    in.nextName();
    String[] str = in.nextString().split(":");
    in.endObject();
    //fixme personalize add on credential list to avoid problematic credential config.
    return new Credential(str[0], str[1], str[2]);
}

From source file:org.netscan.core.json.FilterJsonAdapter.java

License:Open Source License

@Override
public Filter read(JsonReader in) throws IOException {
    in.beginObject();/*from   ww  w . j  a v a 2  s  .c  o m*/
    in.nextName();
    String[] filter = in.nextString().replaceAll("\\s*", "").split(",");
    in.endObject();

    return new Filter(Stream.of(filter).collect(Collectors.toList()));
}