@Override public void parseJson(JsonValue value) { JsonObject o = value.asJsonObject(); this.catalog = o.getString("catalog"); this.schema = o.getString("schema"); this.name = o.getString("name"); this.quoted = o.getBoolean("quoted", false); this.minValue = o.getLong("minValue"); this.maxValue = o.getLong("maxValue"); this.increment = o.getInteger("increment"); this.start = o.getLong("start"); this.cache = o.getInteger("cache"); this.cycle = o.getBoolean("cycle"); } }
/** * Returns the property value as {@link Map}. */ public Map<String,Object> getMap(String key){ return (Map<String,Object>)get(key); }
public void readTags(List<Map<String,Object>> tags, ApiMetadataBuilder m) { if(null == tags) { return; } for(Map<String,Object> map : tags) { JsonObject tag = JsonObject.of(map); String name = tag.getString(NAME); String desc = tag.getString(DESCRIPTION); m.addTag(new MApiTag(name, name, null ,desc, null)); } }
/** * Wraps the property value as {@link JsonObject}. */ public JsonObject getObject(String key){ Map map = get(key); return null == map ? null : new JsonObject(map); }
@Override public void parseJson(JsonValue value) { JsonObject o = value.asJsonObject(); this.name = o.getString("name"); this.typeCode = o.getInteger("typeCode"); this.typeName = o.getString("typeName"); this.length = o.getInteger("length"); this.precision = o.getInteger("precision"); this.scale = o.getInteger("scale"); this.nullable = o.getBoolean("nullable"); this.primaryKey = o.getBoolean("primaryKey"); this.unique = o.getBoolean("unique"); this.autoIncrement = o.getBoolean("autoIncrement"); this.comment = o.getString("comment"); this.defaultValue = o.getString("defaultValue"); } }
private Map data(JsonObject swagger) { Map data = JSON.decodeMap(swagger.toString()); swagger = JsonObject.of(data); JsonObject definitions = swagger.getObject(DEFINITIONS); for(String key : definitions.keys()) { JsonObject definition = definitions.getObject(key); if(Strings.isEmpty(definition.getString(TITLE))) { definition.asMap().put(TITLE, title(definition, key)); JsonArray required = definition.getArray(REQUIRED); if(null != required) { JsonObject props = definition.getObject(PROPERTIES); List<String> names = required.asList(); for(String name : names) { JsonObject prop = props.getObject(name); prop.asMap().put(REQUIRED, true); JsonObject securities = swagger.getObject(SECURITY_DEFINITIONS); if(null != securities) { for(String key : securities.keys()) { JsonObject security = securities.getObject(key); JsonObject scopes = security.getObject(SCOPES); if(null != scopes) { permissions.putAll(scopes.asMap());
public void readSwagger(Map<String,Object> map, ApiMetadataBuilder m) { JsonObject swagger = JsonObject.of(map); String swaggerVersion = swagger.getString(SWAGGER); if(!"2.0".equals(swaggerVersion)) { throw new UnsupportedSpecException("Unsupported swagger version : " + swaggerVersion); } readBase(map, m); readPaths(swagger.getMap(PATHS), m); readSecurityDefinitions(swagger.getMap(SECURITY_DEFINITIONS), m); readDefinitions(swagger.getMap(DEFINITIONS), m); readResponses(swagger.getMap(RESPONSES), m); readTags(swagger.getList(TAGS), m); //todo : security & securityDefinitions. }
JsonObject paths = swagger.getObject(PATHS); for(String pt : paths.keys()) { JsonObject path = paths.getObject(pt); for(String method : path.keys()) { JsonObject op = path.getObject(method); List<String> tags = tags(op); Map operation = op.asMap(); operation.put(ID, "op" + index++); operation.put(METHOD, method.toUpperCase()); title = Strings.firstNotEmpty(op.getString(OPERATION_ID), method.toUpperCase() + " " + pt);
public void readBase(Map<String,Object> map, ApiMetadataBuilder m) { JsonObject swagger = JsonObject.of(map); m.setHost(swagger.getString(HOST)); m.setBasePath(swagger.getString(BASE_PATH)); List<String> schemes = swagger.getList(SCHEMES); if(null != schemes) { schemes.forEach( s -> m.addProtocol(s)); List<String> produces = swagger.getList(PRODUCES); if(null != produces) { produces.forEach(m::addProduce); List<String> consumes = swagger.getList(CONSUMES); if(null != consumes) { consumes.forEach(m::addConsume); JsonObject info = swagger.getObject(INFO); if(null != info) { m.setVersion(info.getString(VERSION)); m.setTitle(info.getString(TITLE)); m.setName(m.getTitle()); m.setSummary(info.getString(SUMMARY)); m.setDescription(info.getString(DESCRIPTION)); m.setTermsOfService(info.getString(TERMS_OF_SERVICE)); JsonObject contact = info.getObject(CONTACT); if(null != contact) {
protected void readParameterBase(String name, JsonObject p, MApiParameterBaseBuilder mp, SwaggerExtension ex) { mp.setName(p.getString(NAME)); mp.setTitle(p.getString(TITLE)); mp.setSummary(p.getString(SUMMARY)); mp.setDescription(p.getString(DESCRIPTION)); mp.setRequired(p.get(REQUIRED, Boolean.class)); mp.setType(readParameterType(name, p, ex)); mp.setDefaultValue(p.get(DEFAULT)); MApiValidationBuilder v = new MApiValidationBuilder(); v.setPattern(p.getString(PATTERN)); v.setMaxLength(p.getInteger(MAX_LENGTH)); v.setMinLength(p.getInteger(MIN_LENGTH)); v.setMaximum(p.get(MAXIMUM)); v.setExclusiveMaximum(p.getBoolean(EXCLUSIVE_MAXIMUM, v.isExclusiveMaximum())); v.setMinimum(p.get(MINIMUM)); v.setExclusiveMinimum(p.getBoolean(EXCLUSIVE_MINIMUM, v.isExclusiveMinimum())); List<String> enumValues = p.getList(ENUM); if(null != enumValues) { mp.setEnumValues(enumValues.toArray(Arrays2.EMPTY_STRING_ARRAY)); } mp.setValidation(v); readFormat(p, mp); }
@Override public void parseJson(JsonValue value) { JsonObject o = value.asJsonObject(); this.name = o.getString("name"); this.unique = o.getBoolean("unique",false); JsonArray columns = o.getArray("columnNames"); if(null != columns){ for(int i=0;i<columns.length();i++){ addColumnName(columns.getString(i)); } } } }
protected MType readObjectType(String name, JsonObject o) { JsonObject additionalProperties = o.getObject(ADDITIONAL_PROPERTIES); if(null == additionalProperties) { //check is nested model Object property = o.get(PROPERTIES); if(null != property && property instanceof Map) { if(null == name) { name = "Embedded"; } MApiModelBuilder model = readModel(name, o.asMap()); return model.toMComplexType().build(); }else { return MObjectType.TYPE; } }else{ if(additionalProperties.asMap().isEmpty()) { return MObjectType.TYPE; }else { MType valueType = readType(additionalProperties); return new MDictionaryType(MSimpleTypes.STRING, valueType); } } }
public MApiResponseBuilder readResponse(String name, Map<String,Object> map) { MApiResponseBuilder mr = new MApiResponseBuilder(); JsonObject resp = JsonObject.of(map); mr.setName(name); mr.setSummary(resp.getString(SUMMARY)); mr.setDescription(resp.getString(DESCRIPTION)); try{ mr.setStatus(Integer.parseInt(name)); }catch(NumberFormatException e) { //not a http status. } JsonObject schema = resp.getObject(SCHEMA); if(null != schema) { mr.setType(readType(schema)); } return mr; }
JsonObject o = value.asJsonObject(); this.name = o.getString("name"); JsonObject foreignTable = o.getObject("foreignTable"); if(null != foreignTable){ DbSchemaObjectNameBuilder nb = new DbSchemaObjectNameBuilder(); JsonArray columns = o.getArray("columns"); if(null != columns){ for(JsonValue v : columns){ JsonObject column = v.asJsonObject(); addColumn(new DbForeignKeyColumn(column.getString("localColumnName"), column.getString("foreignColumnName"))); String onUpdate = o.getString("onUpdate"); if(!Strings.isEmpty(onUpdate)){ this.onUpdate = DbCascadeAction.valueOf(onUpdate); String onDelete = o.getString("onDelete"); if(!Strings.isEmpty(onDelete)){ this.onDelete = DbCascadeAction.valueOf(onDelete);
protected MType readType(String name, JsonObject property, SwaggerExtension ex) { String ref = property.getString(REF); if(!Strings.isEmpty(ref)) { return readRefType(ref); } String type = property.getString(TYPE); if(Strings.isEmpty(type)) { if(!validate) { return null; } throw new InvalidSpecException("Invalid type in property : " + JSON.stringify(property.raw())); } MType mtype = null != ex ? ex.readType(type) : null; if(null != mtype) { return mtype; } if(type.equals(OBJECT)) { return readObjectType(name, property); } if(type.equals(ARRAY)) { return readCollectionType(property.getObject(ITEMS), ex); } String format = property.getString(FORMAT); return readSimpleType(type, format); }
protected UserPrincipal newUserInfo(JsonObject json) { SimpleUserPrincipal userInfo = new SimpleUserPrincipal(); userInfo.setId(json.getString("sub")); userInfo.setName(json.getString("name")); userInfo.setLoginName(json.getString("login_name")); userInfo.setProperties(json.asMap()); return userInfo; }
public MApiPropertyBuilder readProperty(String name, Map<String,Object> map, SwaggerExtension ex) { MApiPropertyBuilder mp = new MApiPropertyBuilder(); JsonObject p = JsonObject.of(map); readParameterBase(name, p, mp, ex); mp.setName(name); //yaml read all values to string. mp.setIdentity(p.getBoolean(X_IDENTITY, false)); mp.setUnique(p.getBoolean(X_UNIQUE, false)); mp.setSortable(p.get(X_SORTABLE, Boolean.class)); mp.setFilterable(p.get(X_FILTERABLE, Boolean.class)); mp.setCreatable(p.get(X_CREATABLE, Boolean.class)); mp.setUpdatable(p.get(X_UPDATABLE, Boolean.class)); mp.setExpandable(p.get(X_EXPANDABLE, Boolean.class)); return mp; }
@Override public void parseJson(JsonValue json) { JsonObject o = json.asJsonObject(); this.catalog = o.getString("catalog"); this.name = o.getString("name"); JsonArray tables = o.getArray("tables"); if(null != tables){ for(JsonValue v : tables){ DbTableBuilder tb = new DbTableBuilder(); tb.parseJson(v); addTable(tb.build()); } } JsonArray sequences = o.getArray("sequences"); if(null != sequences){ for(JsonValue v : sequences){ DbSequenceBuilder sb = new DbSequenceBuilder(); sb.parseJson(v); addSequence(sb.build()); } } } }