Exemple #1
0
 public static Uri ResolveCurie(Curie c, Dictionary<string, string> mappings)
 {
     if (mappings.Keys.Contains(c.Prefix))
     {
         return new Uri(mappings[c.Prefix] + c.Suffix);
     }
     throw new BrightstarInternalException(String.Format("No mapping found for CURIE prefix '{0}'", c.Prefix));
 }
 /// <summary>
 /// Checks whether the supplied identity is a valid Curie and if so resolves it against the supplied namespace mappings
 /// </summary>
 /// <param name="identity"></param>
 /// <returns></returns>
 protected string ResolveIdentity(string identity)
 {
     var curie = new Curie(identity);
     if (curie.IsValidCurie && _namespaceMappings.ContainsKey(curie.Prefix))
     {
         return Curie.ResolveCurie(curie, _namespaceMappings).ToString();
     }
     if (Uri.IsWellFormedUriString(identity, UriKind.Absolute))
     {
         return identity;
     }
     throw new ArgumentException(Strings.InvalidDataObjectIdentity, "identity");
 }
 /// <summary>
 /// The string value can either be a valid absolute URI or a CURIE.
 /// </summary>
 /// <param name="identity">The URI or CURIE that identifies the DataObject</param>
 /// <exception cref="ArgumentException">Thrown if <paramref name="identity"/> could not be parsed as a CURIE or a URI</exception>
 /// <exception cref="ArgumentNullException">Thrown if <paramref name="identity"/> is NULL</exception>
 /// <returns></returns>
 public IDataObject MakeDataObject(string identity)
 {
     if (identity == null) throw new ArgumentNullException("identity");
     var curie = new Curie(identity);
     if (curie.IsValidCurie && _namespaceMappings.ContainsKey(curie.Prefix))
     {
         return RegisterDataObject(new DataObject(this, Curie.ResolveCurie(new Curie(identity), _namespaceMappings).ToString()));
     }
     
     Uri uri;
     var validUri = Uri.TryCreate(identity, UriKind.Absolute, out uri);
     if(validUri)
     {
         return RegisterDataObject(new DataObject(this, identity));
     }
     
     throw new ArgumentException(Strings.InvalidDataObjectIdentity, "identity");
 }