internal XsdtAttribute GetXsdtAttrFor(XsdtPrimitiveDataType dt) { FieldInfo fi = dt.GetType().GetField(dt.ToString()); var attrs = (XsdtAttribute[])fi.GetCustomAttributes(typeof(XsdtAttribute), false); return(attrs[0]); // I know by design that there will be one and only one attribute in this array. }
public void Equal(Expression e) { Expression lh; Expression rh; if (e is BinaryExpression) { BinaryExpression be = e as BinaryExpression; lh = be.Left; rh = be.Right; } else if (e is MethodCallExpression) { MethodCallExpression mce = e as MethodCallExpression; lh = mce.Arguments[0]; rh = mce.Arguments[1]; } else { throw new LinqToRdfException("Unrecognised equality expression type"); } if (lh != null && rh != null) { XsdtPrimitiveDataType dt = TypeTranslator.GetDataType(lh.Type); if (dt == XsdtPrimitiveDataType.XsdtString) { QueryAppend("regex("); Dispatch(lh); QueryAppend(", "); Dispatch(rh); QueryAppend(") "); } else { //QueryAppend("("); Dispatch(lh); QueryAppend(" = "); //QueryAppend(")=("); Dispatch(rh); //QueryAppend(")"); //Log("+ :{0} Handled", e.NodeType); } } else { Log("Failure during generation of Equal expression"); } }
internal string GetStringRepresentationFor <T>(T obj, XsdtPrimitiveDataType dt, XsdtAttribute attr) { return(obj.ToString()); }
public string GetXsdtDateRepresentationFor(DateTime d, XsdtPrimitiveDataType dt, XsdtAttribute attr) { // TODO: the time zone offset needs to be returned from somewhere... return(d.ToString("yyyy-MM-ddTHH:mm:sszzz")); }
public object Get(Type t, object obj) { //PORT: Convert this just to use SparqlFormatter instead? string result = ""; XsdtPrimitiveDataType dt = GetDataType(t); XsdtAttribute attr = GetXsdtAttrFor(dt); //if (dt == XsdtPrimitiveDataType.XsdtUnknown) //{ // return this._formatter.Format(this._g.CreateLiteralNode(obj.ToString())); //} //else //{ // XsdtAttribute attr = GetXsdtAttrFor(dt); //} if (dt == XsdtPrimitiveDataType.XsdtUnknown) { if (t == typeof(char)) { return("\"" + obj + "\""); } else if (attr.IsQuoted) { return("\"" + obj + "\""); } else { return(obj.ToString()); } } switch (t.FullName) { case "System.DateTime": result = GetXsdtDateRepresentationFor((DateTime)obj, dt, attr); break; case "System.Byte[]": result = Encoding.ASCII.GetString((Byte[])obj); break; default: result = GetStringRepresentationFor(obj, dt, attr); break; } if (attr.IsQuoted) { result = "\"" + result + "\""; } string xsdTypeSuffix; if (dt != XsdtPrimitiveDataType.XsdtInt && dt != XsdtPrimitiveDataType.XsdtString) { xsdTypeSuffix = "^^xsd:" + attr.TypeUri; } else { xsdTypeSuffix = ""; } return(result + xsdTypeSuffix); }