Example #1
0
 protected void fillData(JsonObject data)
 {
     if (data.get("snaks") != null)
     {
         foreach (JsonObject.Member member in data.get("snaks").asObject())
         {
             Dictionary<string, Snak> list = new Dictionary<string, Snak>();
             foreach (JsonValue value in member.value.asArray())
             {
                 Snak snak = Snak.newFromArray(value.asObject());
                 list.Add(snak.dataValue.getHash(), snak);
             }
             this.snaks.Add(member.name, list);
         }
     }
     if (data.get("hash") != null)
     {
         this.hash = data.get("hash").asString();
     }
     if (this.internalId == null)
     {
         if (this.hash != null)
         {
             this.internalId = this.hash;
         }
         else
         {
             this.internalId = "" + Environment.TickCount + this.statement.internalId;
         }
     }
 }
Example #2
0
 protected override void fillData(JsonObject data)
 {
     base.fillData(data);
     if (data.get("datatype") != null)
     {
         this.datatype = data.get("datatype").asString();
     }
 }
Example #3
0
 protected override void fillData(JsonObject data)
 {
     base.fillData(data);
     if ( data.get("sitelinks") != null )
     {
         this.sitelinks.Clear();
         foreach ( JsonObject.Member member in data.get("sitelinks").asObject() )
         {
             JsonObject obj = member.value.asObject();
             this.sitelinks.Add(obj.get("site").asString(), obj.get("title").asString());
         }
     }        }
Example #4
0
 internal static Claim newFromArray(Entity entity, JsonObject data)
 {
     if (data.get("type") != null)
     {
         switch (data.get("type").asString())
         {
             case "statement":
                 return new Statement(entity, data);
             default:
                 return new Claim(entity, data);
         }
     }
     throw new Exception("Unknown type");
 }
Example #5
0
 /// <summary>
 /// Create a list of entities form an api response.
 /// </summary>
 /// <param name="result">The result of the api request</param>
 /// <returns>The list of entities</returns>
 protected Entity[] parseGetEntitiesApiResponse(JsonObject result)
 {
     List<Entity> entities = new List<Entity>();
     if (result.get("entities") != null)
     {
         foreach (JsonObject.Member member in result.get("entities").asObject())
         {
             if (member.value.asObject().get("missing") == null)
             {
                 entities.Add(Entity.newFromArray(this, member.value.asObject()));
             }
         }
     }
     return entities.ToArray();
 }
Example #6
0
 protected override void fillData(JsonObject data)
 {
     base.fillData(data);
     if (data.get("rank") != null)
     {
         this.rank = data.get("rank").asString();
     }
     if (data.get("references") != null)
     {
         foreach (JsonValue value in data.get("references").asArray())
         {
             Reference reference = new Reference(this, value.asObject());
             this.references.Add(reference.internalId, reference);
         }
     }
 }
Example #7
0
 protected virtual void fillData(JsonObject data)
 {
     if (data.get("mainsnak") != null)
     {
         this.mMainSnak = Snak.newFromArray(data.get("mainsnak").asObject());
     }
     if (data.get("id") != null)
     {
         this.id = data.get("id").asString();
     }
     if (this.internalId == null)
     {
         if (this.id != null)
         {
             this.internalId = this.id;
         }
         else
         {
             this.internalId = "" + Environment.TickCount + this.mMainSnak.propertyId + this.mMainSnak.dataValue;
         }
     }
 }
Example #8
0
 internal static Snak newFromArray(JsonObject data)
 {
     if (data.get("snaktype") == null || data.get("property") == null)
     {
         throw new ArgumentException("Invalid Snak serialization", "data");
     }
     var dataValue = data.get("datavalue");
     if ( dataValue != null )
     {
         return new Snak(
            data.get("snaktype").asString(),
            EntityId.newFromPrefixedId(data.get("property").asString()),
            DataValueFactory.newFromArray(dataValue.asObject())
            );
     }
     else
     {
         return new Snak(
            data.get("snaktype").asString(),
            EntityId.newFromPrefixedId(data.get("property").asString()),
            null
            );
     }
 }
Example #9
0
 protected virtual void fillData(JsonObject data)
 {
     if (data.get("id") != null)
     {
         this.id = EntityId.newFromPrefixedId(data.get("id").asString());
     }
     if (data.get("lastrevid") != null)
     {
         this.lastRevisionId = data.get("lastrevid").asInt();
     }
     JsonValue returnedLabels = data.get("labels");
     if ( (returnedLabels != null) && (returnedLabels.isObject()) )
     if (data.get("labels") != null)
     {
             labels.Clear();
             foreach ( JsonObject.Member member in returnedLabels.asObject() )
         {
             JsonObject obj = member.value.asObject();
             this.labels.Add(obj.get("language").asString(), obj.get("value").asString());
         }
     }
     JsonValue returnedDescriptions = data.get("descriptions");
     if ( (returnedDescriptions != null) && (returnedDescriptions.isObject()) )
     {
         descriptions.Clear();
         foreach ( JsonObject.Member member in returnedDescriptions.asObject() )
         {
             JsonObject obj = member.value.asObject();
             this.descriptions.Add(obj.get("language").asString(), obj.get("value").asString());
         }
     }
     JsonValue returnedAliases = data.get("aliases");
     if ( (returnedAliases != null) && (returnedAliases.isObject()) )
     {
         // strange - after save an empty array is returned, whereas by a normal get the fully alias list is returned
         aliases.Clear();
         foreach ( JsonObject.Member member in returnedAliases.asObject() )
         {
             List<String> list = new List<String>();
             foreach (JsonValue value in member.value.asArray())
             {
                 list.Add(value.asObject().get("value").asString());
             }
             this.aliases.Add(member.name, list);
         }
     }
     JsonValue returnedClaims = data.get("claims");
     if ( (returnedClaims != null) && (returnedClaims.isObject()) )
     {
         claims.Clear();
         foreach ( JsonObject.Member member in returnedClaims.asObject() )
         {
             Dictionary<String, Claim> list = new Dictionary<String, Claim>();
             foreach (JsonValue value in member.value.asArray())
             {
                 Claim claim = Claim.newFromArray(this, value.asObject());
                 list.Add(claim.internalId, claim);
             }
             this.claims.Add(member.name, list);
         }
     }
 }
Example #10
0
 internal void updateLastRevisionIdFromResult(JsonObject result)
 {
     if (result.get("pageinfo") != null && result.get("pageinfo").asObject().get("lastrevid") != null)
     {
         this.lastRevisionId = result.get("pageinfo").asObject().get("lastrevid").asInt();
     }
 }
Example #11
0
 internal static Entity newFromArray(WikibaseApi api, JsonObject data)
 {
     if (data.get("type") != null)
     {
         switch (data.get("type").asString())
         {
             case "item":
                 return new Item(api, data);
             case "property":
                 return new Property(api, data);
         }
     }
     throw new Exception("Unknown type");
 }
Example #12
0
 protected void updateDataFromResult(JsonObject result)
 {
     if (result.get("claim") != null)
     {
         this.fillData(result.get("claim").asObject());
     }
     this.entity.updateLastRevisionIdFromResult(result);
 }
 internal static DataValue newFromArray(JsonObject data)
 {
     return newDataValue(data.get("type").asString(), data.get("value"));
 }
        private IEnumerable<Entity> ParseJson(JsonObject data)
        {
            var result = new List<Entity>();
            var actualData = data.get("aaData");
            if ( actualData != null )
            {
                var array = actualData.asArray();
                foreach ( JsonArray item in array )
                {
                    var parsedData = new List<String>();
                    foreach ( JsonValue dataPoint in item )
                    {
                        var strippedText = Regex.Replace(dataPoint.asString(), "<.*?>", string.Empty).Replace(",", String.Empty);
                        if ( strippedText == "-" )
                        {
                            strippedText = "0";
                        }
                        parsedData.Add(strippedText);
                    }
                    var firstLine = parsedData.First();
                    if ( !String.IsNullOrWhiteSpace(firstLine) && (firstLine != "00") )
                    {
                        Entity entity = new Entity();
                        entity.ParseName(parsedData.ElementAt(1).Replace("ท้องถิ่น", String.Empty).Trim());
                        entity.geocode = Convert.ToUInt32(firstLine, CultureInfo.InvariantCulture);
                        while ( entity.geocode % 100 == 0 )
                        {
                            entity.geocode = entity.geocode / 100;
                        }

                        PopulationData population = CreateEmptyPopulationEntry();
                        entity.population.Add(population);
                        HouseholdDataPoint householdDataPoint = new HouseholdDataPoint();
                        householdDataPoint.male = Convert.ToInt32(parsedData.ElementAt(2), CultureInfo.InvariantCulture);
                        householdDataPoint.female = Convert.ToInt32(parsedData.ElementAt(3), CultureInfo.InvariantCulture);
                        householdDataPoint.total = Convert.ToInt32(parsedData.ElementAt(4), CultureInfo.InvariantCulture);
                        householdDataPoint.households = Convert.ToInt32(parsedData.ElementAt(5), CultureInfo.InvariantCulture);
                        population.data.Add(householdDataPoint);
                        if ( (householdDataPoint.total > 0) || (householdDataPoint.households > 0) )
                        {
                            // occasionally there are empty entries, e.g. for 3117 includes an empty 311102
                            result.Add(entity);
                        }
                    }
                }
            }
            return result;
        }
Example #15
0
 /// <summary>
 /// Get the continuation parameter of a query.
 /// </summary>
 /// <param name="result">The result of the query</param>
 /// <returns>An array containing the continuation parameter key at 0 and the continuation parameter value at 1</returns>
 public string[] getContinueParam(JsonObject result)
 {
     if (result.get("query-continue") != null)
     {
         List<string> keys = (List<string>) result.get("query-continue").asObject().names();
         List<string> keys2 = (List<string>) result.get("query-continue").asObject().get(keys[0]).asObject().names();
         return new string[] { keys2[0], result.get("query-continue").asObject().get(keys[0]).asObject().get(keys2[0]).asString() };
     }
     else
     {
         return null;
     }
 }