Beispiel #1
0
        public override State Handle(QueryParser parser, QueryTokenizer tokenizer, Query query)
        {
            if (Explain)
            {
                Console.WriteLine("Entering DESCRIBE state");
            }
            do
            {
                if (Explain)
                {
                    Console.WriteLine("  tokenizer.TokenText is " + tokenizer.TokenText + " (" + tokenizer.Type + ")");
                }
                switch (tokenizer.Type)
                {
                case QueryTokenizer.TokenType.KeywordWhere:
                    if (tokenizer.MoveNext())
                    {
                        if (tokenizer.TokenText.Equals("{"))
                        {
                            return(new WhereState());
                        }
                    }
                    break;

                case QueryTokenizer.TokenType.QuotedIRIRef:
                    query.AddDescribeTerm(new UriRef(tokenizer.TokenText));
                    break;

                case QueryTokenizer.TokenType.Variable:
                    Variable var = new Variable(tokenizer.TokenText);
                    query.AddVariable(var);
                    query.AddDescribeTerm(var);
                    break;

                default:
                    break;
                }
            } while (tokenizer.MoveNext());
            return(this);
        }
Beispiel #2
0
        public void GetHashCodeUsesDescribeTerms()
        {
            Query query1 = new Query();
            Query query2 = new Query();
            Query query3 = new Query();

            query1.AddDescribeTerm(new Variable("var"));
            query2.AddDescribeTerm(new Variable("var"));
            query3.AddDescribeTerm(new Variable("other"));

            Assert.IsTrue(query1.GetHashCode() == query2.GetHashCode(), "Query1 should have same hash code as query2");
            Assert.IsTrue(query1.GetHashCode() != query3.GetHashCode(), "Query1 should not have same hash code as query2");
        }
Beispiel #3
0
        public void EqualsComparesDescribeTerms()
        {
            Query query1 = new Query();
            Query query2 = new Query();
            Query query3 = new Query();

            query1.AddDescribeTerm(new Variable("var"));
            query2.AddDescribeTerm(new Variable("var"));
            query3.AddDescribeTerm(new Variable("other"));

            Assert.IsTrue(query1.Equals(query2), "Query1 should equal query2");
            Assert.IsTrue(!query1.Equals(query3), "Query1 should not equal query3");
        }