[[sqlcontainer]] == Vaadin SQLContainer Vaadin SQLContainer is a container implementation that allows easy and customizable access to data stored in various SQL-speaking databases. SQLContainer supports two types of database access. Using [classname]#TableQuery#, the pre-made query generators will enable fetching, updating, and inserting data directly from the container into a database table - automatically, whereas [classname]#FreeformQuery# allows the developer to use their own, probably more complex query for fetching data and their own optional implementations for writing, filtering and sorting support - item and property handling as well as lazy loading will still be handled automatically. In addition to the customizable database connection options, SQLContainer also extends the Vaadin [classname]#Container# interface to implement more advanced and more database-oriented filtering rules. Finally, the add-on also offers connection pool implementations for JDBC connection pooling and JEE connection pooling, as well as integrated transaction support; auto-commit mode is also provided. The purpose of this section is to briefly explain the architecture and some of the inner workings of SQLContainer. It will also give the readers some examples on how to use SQLContainer in their own applications. The requirements, limitations and further development ideas are also discussed. SQLContainer is available from the Vaadin Directory under the same unrestrictive Apache License 2.0 as the Vaadin Framework itself. include::sqlcontainer-architecture.asciidoc[leveloffset=+2] include::sqlcontainer-getting-started.asciidoc[leveloffset=+2] include::sqlcontainer-filteringsorting.asciidoc[leveloffset=+2] include::sqlcontainer-editing.asciidoc[leveloffset=+2] include::sqlcontainer-caching.asciidoc[leveloffset=+2] include::sqlcontainer-referencing.asciidoc[leveloffset=+2] include::sqlcontainer-freeform.asciidoc[leveloffset=+2] include::sqlcontainer-nonimplemented.asciidoc[leveloffset=+2] include::sqlcontainer-limitations.asciidoc[leveloffset=+2] edesign Apache XML Graphics FOP: https://github.com/apache/xmlgraphics-fopwww-data
aboutsummaryrefslogtreecommitdiffstats
path: root/test/java/org/apache/fop/layoutengine/ResultCheck.java
blob: f2d7a52fe062acf9dd1698aa90cc40e14113337a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
/*
 * Copyright 2006 The Apache Software Foundation.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* $Id$ */

package org.apache.fop.layoutengine;

import org.apache.fop.apps.FormattingResults;
import org.w3c.dom.Node;

/**
 * Simple check that requires a result property to evaluate to the expected value
 */
public class ResultCheck implements LayoutEngineCheck {

    private String expected;
    private String property;
    
    /**
     * Creates a new instance
     * @param expected expected value
     * @param property property of which the value needs to be evaluated
     */
    public ResultCheck(String expected, String property) {
        this.expected = expected;
        this.property = property;
    }
    
    /**
     * Creates a new instance from a DOM node.
     * @param node DOM node that defines this check
     */
    public ResultCheck(Node node) {
        this.expected = node.getAttributes().getNamedItem("expected").getNodeValue();
        this.property = node.getAttributes().getNamedItem("property").getNodeValue();
    }
    
    /* (non-Javadoc)
     * @see LayoutEngineCheck#check(LayoutResult)
     */
    public void check(LayoutResult result) {
        FormattingResults results = result.getResults();
        String actual;
        if (property.equals("pagecount")) {
            actual = Integer.toString(results.getPageCount());
        } else {
            throw new RuntimeException("No such property test: " + property);
        }
        if (!expected.equals(actual)) {
            throw new RuntimeException(
                    "Expected property to evaluate to '" + expected + "', but got '" 
                    + actual + "' (" + this + ")");
        }

    }

    /** @see java.lang.Object#toString() */
    public String toString() {
        return "Property: " + property;
    }

}