Package org.apache.metamodel.schema

Examples of org.apache.metamodel.schema.Schema


            System.err.println(getInvalidConfigurationMessage());
            return;
        }
        dataContext = new SugarCrmDataContext(BASE_URL, getUsername(), getPassword(), "Test");

        Schema schema = dataContext.getDefaultSchema();
        assertEquals("SugarCRM", schema.getName());

        Table table = schema.getTableByName("Accounts");

        String[] columnNames = table.getColumnNames();
        assertEquals(
                "[id, name, date_entered, date_modified, modified_user_id, modified_by_name, created_by, created_by_name, "
                        + "description, deleted, assigned_user_id, assigned_user_name, account_type, industry, annual_revenue, phone_fax, "
                        + "billing_address_street, billing_address_street_2, billing_address_street_3, billing_address_street_4, "
                        + "billing_address_city, billing_address_state, billing_address_postalcode, billing_address_country, rating, "
                        + "phone_office, phone_alternate, website, ownership, employees, ticker_symbol, shipping_address_street, "
                        + "shipping_address_street_2, shipping_address_street_3, shipping_address_street_4, shipping_address_city, "
                        + "shipping_address_state, shipping_address_postalcode, shipping_address_country, email1, parent_id, sic_code, parent_name, "
                        + "email_opt_out, invalid_email, email, campaign_id, campaign_name]",
                Arrays.toString(columnNames));

        Column nameColumn = table.getColumnByName("name");
        String nativeType = nameColumn.getNativeType();
        String remarks = nameColumn.getRemarks();
        ColumnType type = nameColumn.getType();
        assertEquals("name|Name:|VARCHAR", nativeType + "|" + remarks + "|" + type);

        Column[] columns = table.getColumns();
        for (Column column : columns) {
            type = column.getType();
            if (type == null || type == ColumnType.OTHER) {
                fail("No type mapping for native type: " + column.getNativeType() + " (found in column: " + column
                        + ")");
            }
        }

        table = schema.getTableByName("Contacts");

        columnNames = table.getColumnNames();
        assertEquals(
                "[id, name, date_entered, date_modified, modified_user_id, modified_by_name, created_by, created_by_name, description, deleted, "
                        + "assigned_user_id, assigned_user_name, salutation, first_name, last_name, full_name, title, department, do_not_call, phone_home, "
View Full Code Here


            return null;
        }

        final String[] tokens = tokenizePath(columnName, 3);
        if (tokens != null) {
            final Schema schema = getSchemaByToken(tokens[0]);
            if (schema != null) {
                final Table table = schema.getTableByName(tokens[1]);
                if (table != null) {
                    final Column column = table.getColumnByName(tokens[2]);
                    if (column != null) {
                        return column;
                    }
                }
            }
        }

        Schema schema = null;
        final String[] schemaNames = getSchemaNames();
        for (final String schemaName : schemaNames) {
            if (schemaName == null) {
                // search without schema name (some databases have only a single
                // schema with no name)
View Full Code Here

     *            as original, or lower case in case of case-insensitive search)
     * @return
     */
    private Column searchColumn(String schemaNameSearch, String columnNameOriginal, String columnNameSearch) {
        if (columnNameSearch.startsWith(schemaNameSearch)) {
            Schema schema = getSchemaByName(schemaNameSearch);
            if (schema != null) {
                String tableAndColumnPath = columnNameOriginal.substring(schemaNameSearch.length());

                if (tableAndColumnPath.charAt(0) == '.') {
                    tableAndColumnPath = tableAndColumnPath.substring(1);
View Full Code Here

            return null;
        }

        final String[] tokens = tokenizePath(tableName, 2);
        if (tokens != null) {
            Schema schema = getSchemaByToken(tokens[0]);
            if (schema != null) {
                Table table = schema.getTableByName(tokens[1]);
                if (table != null) {
                    return table;
                }
            }
        }

        Schema schema = null;
        String[] schemaNames = getSchemaNames();
        for (String schemaName : schemaNames) {
            if (schemaName == null) {
                // there's an unnamed schema present.
                schema = getSchemaByName(null);
                if (schema != null) {
                    Table table = schema.getTableByName(tableName);
                    return table;
                }
            } else {
                // case-sensitive search
                if (isStartingToken(schemaName, tableName)) {
                    schema = getSchemaByName(schemaName);
                }
            }
        }

        if (schema == null) {
            final String tableNameInLowerCase = tableName.toLowerCase();
            for (final String schemaName : schemaNames) {
                if (schemaName != null) {
                    // case-insensitive search
                    final String schemaNameInLowerCase = schemaName.toLowerCase();
                    if (isStartingToken(schemaNameInLowerCase, tableNameInLowerCase)) {
                        schema = getSchemaByName(schemaName);
                    }
                }
            }
        }

        if (schema == null) {
            schema = getDefaultSchema();
        }

        String tablePart = tableName.toLowerCase();
        String schemaName = schema.getName();
        if (schemaName != null && isStartingToken(schemaName.toLowerCase(), tablePart)) {
            tablePart = tablePart.substring(schemaName.length());
            if (tablePart.startsWith(".")) {
                tablePart = tablePart.substring(1);
            }
        }

        return schema.getTableByName(tablePart);
    }
View Full Code Here

        if (!isConfigured()) {
            System.err.println(getInvalidConfigurationMessage());
            return;
        }
        final MongoDbDataContext dc = new MongoDbDataContext(db);
        final Schema defaultSchema = dc.getDefaultSchema();

        dc.executeUpdate(new UpdateScript() {
            @Override
            public void run(UpdateCallback callback) {
                Table[] tables = defaultSchema.getTables();
                for (Table table : tables) {
                    callback.deleteFrom(table).execute();
                }
            }
        });

        assertEquals(0, defaultSchema.getTableCount());

        dc.executeUpdate(new UpdateScript() {

            @Override
            public void run(UpdateCallback callback) {
                Table table = callback.createTable(defaultSchema, "some_entries").withColumn("foo").withColumn("bar")
                        .withColumn("baz").withColumn("list").execute();

                callback.insertInto(table).value("foo", 1).value("bar", "hello").execute();
                callback.insertInto(table).value("foo", 2).value("bar", "world").execute();
                callback.insertInto(table).value("foo", 3).value("bar", "hi").execute();

                Map<String, Object> nestedObj = new HashMap<String, Object>();
                nestedObj.put("foo", "bar");
                nestedObj.put("123", 456);

                callback.insertInto(table).value("foo", 4).value("bar", "there").value("baz", nestedObj)
                        .value("list", Arrays.asList(1, 2, 3)).execute();
            }
        });

        DataSet dataSet;
        assertEquals(1, defaultSchema.getTableCount());

        // "Pure" SELECT COUNT(*) query
        dataSet = dc.query().from("some_entries").selectCount().execute();
        dataSet.close();
        assertTrue(dataSet.next());
        assertEquals(1, dataSet.getSelectItems().length);
        assertEquals(SelectItem.getCountAllItem(), dataSet.getSelectItems()[0]);
        assertEquals(4l, dataSet.getRow().getValue(SelectItem.getCountAllItem()));
        assertFalse(dataSet.next());
        assertEquals(InMemoryDataSet.class, dataSet.getClass());

        // A conditional SELECT COUNT(*) query
        dataSet = dc.query().from("some_entries").selectCount().where("foo").greaterThan(2).execute();
        dataSet.close();
        assertTrue(dataSet.next());
        assertEquals(1, dataSet.getSelectItems().length);
        assertEquals(SelectItem.getCountAllItem(), dataSet.getSelectItems()[0]);
        assertEquals(2l, dataSet.getRow().getValue(SelectItem.getCountAllItem()));
        assertFalse(dataSet.next());
        assertEquals(InMemoryDataSet.class, dataSet.getClass());

        // Select columns
        dataSet = dc.query().from("some_entries").select("foo").and("bar").and("baz").and("list").execute();
        assertTrue(dataSet.next());
        assertEquals("Row[values=[1, hello, null, null]]", dataSet.getRow().toString());
        assertTrue(dataSet.next());
        assertEquals("Row[values=[2, world, null, null]]", dataSet.getRow().toString());
        assertTrue(dataSet.next());
        assertEquals("Row[values=[3, hi, null, null]]", dataSet.getRow().toString());
        assertTrue(dataSet.next());
        assertEquals("Row[values=[4, there, {123=456, foo=bar}, [ 1 , 2 , 3]]]", dataSet.getRow().toString());
        assertFalse(dataSet.next());
        dataSet.close();
        assertEquals(MongoDbDataSet.class, dataSet.getClass());

        // delete some records
        dc.executeUpdate(new UpdateScript() {
            @Override
            public void run(UpdateCallback callback) {
                callback.deleteFrom("some_entries").where("foo").greaterThan(2).where("baz").isNotNull().execute();
            }
        });

        dataSet = dc.query().from("some_entries").select("foo").execute();
        assertTrue(dataSet.next());
        assertEquals("Row[values=[1]]", dataSet.getRow().toString());
        assertTrue(dataSet.next());
        assertEquals("Row[values=[2]]", dataSet.getRow().toString());
        assertTrue(dataSet.next());
        assertEquals("Row[values=[3]]", dataSet.getRow().toString());
        assertFalse(dataSet.next());
        dataSet.close();
        assertEquals(MongoDbDataSet.class, dataSet.getClass());

        // drop the collection
        dc.executeUpdate(new UpdateScript() {
            @Override
            public void run(UpdateCallback callback) {
                callback.dropTable("some_entries").execute();
            }
        });

        assertNull(dc.getTableByQualifiedLabel("some_entries"));

        dc.refreshSchemas();
        assertEquals(0, defaultSchema.getTableCount());
    }
View Full Code Here

            }
        });
    }

    private Table getSourceTable() {
        final Schema schema;
        if (_sourceSchemaName != null) {
            schema = _sourceDataContext.getSchemaByName(_sourceSchemaName);
        } else {
            schema = _sourceDataContext.getDefaultSchema();
        }

        return schema.getTableByName(_sourceTableName);
    }
View Full Code Here

        URL url = new URL("http://eobjects.org/trac/blog?format=rss");

        try {
            XmlDomDataContext dataContext = new XmlDomDataContext(url, true);

            Schema schema = dataContext.getDefaultSchema();
            assertEquals("blog?format=rss", schema.getName());

            assertNotNull(schema.getTableByName("rss"));
            assertNotNull(schema.getTableByName("channel_title"));
            assertNotNull(schema.getTableByName("channel_link"));
            assertNotNull(schema.getTableByName("channel_item"));
            assertNotNull(schema.getTableByName("channel_item_category"));
        } catch (IllegalArgumentException e) {
            // If the network is not accessible omit the test
            if (!(e.getCause() instanceof UnknownHostException)) {
                throw e;
            }
View Full Code Here

        XmlDomDataContext dataContext = new XmlDomDataContext(file, false);

        assertEquals("xml_input_eobjects.xml", dataContext.getDefaultSchema().getName());
        assertEquals(2, dataContext.getSchemaNames().length);

        Schema schema = dataContext.getSchemaByName("xml_input_eobjects.xml");
        assertEquals("Schema[name=xml_input_eobjects.xml]", schema.toString());

        Table[] tables = schema.getTables();
        assertEquals(5, schema.getTableCount());
        assertEquals("[Table[name=eobjects.dk,type=TABLE,remarks=null], "
                + "Table[name=contributors_person,type=TABLE,remarks=null], "
                + "Table[name=contributors_person_name,type=TABLE,remarks=null], "
                + "Table[name=contributors_person_address,type=TABLE,remarks=null], "
                + "Table[name=projects_project,type=TABLE,remarks=null]]", Arrays.toString(tables));

        Table table = schema.getTableByName("eobjects.dk");
        assertEquals(2, table.getColumnCount());
        assertEquals(
                "[Column[name=id,columnNumber=0,type=INTEGER,nullable=false,nativeType=Auto-generated primary key,columnSize=null], "
                        + "Column[name=website,columnNumber=2,type=STRING,nullable=true,nativeType=XML Attribute,columnSize=null]]",
                Arrays.toString(table.getColumns()));

        table = schema.getTableByName("contributors_person");
        assertEquals(1, table.getColumnCount());
        assertEquals(
                "[Column[name=id,columnNumber=0,type=INTEGER,nullable=false,nativeType=Auto-generated primary key,columnSize=null]]",
                Arrays.toString(table.getColumns()));

        table = schema.getTableByName("contributors_person_name");
        assertEquals(3, table.getColumnCount());
        assertEquals(
                "[Column[name=id,columnNumber=0,type=INTEGER,nullable=false,nativeType=Auto-generated primary key,columnSize=null], "
                        + "Column[name=contributors_person_id,columnNumber=1,type=INTEGER,nullable=false,nativeType=Auto-generated foreign key,columnSize=null], "
                        + "Column[name=name,columnNumber=2,type=STRING,nullable=true,nativeType=XML Text,columnSize=null]]",
                Arrays.toString(table.getColumns()));
        assertEquals("[Relationship[primaryTable=contributors_person,primaryColumns=[id],"
                + "foreignTable=contributors_person_name,foreignColumns=[contributors_person_id]]]",
                Arrays.toString(table.getRelationships()));

        table = schema.getTableByName("contributors_person_address");
        assertEquals(3, table.getColumnCount());
        assertEquals(
                "[Column[name=id,columnNumber=0,type=INTEGER,nullable=false,nativeType=Auto-generated primary key,columnSize=null], "
                        + "Column[name=contributors_person_id,columnNumber=1,type=INTEGER,nullable=false,nativeType=Auto-generated foreign key,columnSize=null], "
                        + "Column[name=address,columnNumber=2,type=STRING,nullable=true,nativeType=XML Text,columnSize=null]]",
                Arrays.toString(table.getColumns()));
        assertEquals("[Relationship[primaryTable=contributors_person,primaryColumns=[id],"
                + "foreignTable=contributors_person_address,foreignColumns=[contributors_person_id]]]",
                Arrays.toString(table.getRelationships()));

        table = schema.getTableByName("projects_project");
        assertEquals(3, table.getColumnCount());
        assertEquals(
                "[Column[name=id,columnNumber=0,type=INTEGER,nullable=false,nativeType=Auto-generated primary key,columnSize=null], "
                        + "Column[name=project,columnNumber=1,type=STRING,nullable=true,nativeType=XML Text,columnSize=null], "
                        + "Column[name=name,columnNumber=2,type=STRING,nullable=true,nativeType=XML Attribute,columnSize=null]]",
                Arrays.toString(table.getColumns()));

        dataContext.autoFlattenTables();
        table = schema.getTableByName("contributors_person");
        assertEquals(2, table.getColumnCount());
        assertEquals(
                "[Column[name=id,columnNumber=0,type=INTEGER,nullable=false,nativeType=Auto-generated primary key,columnSize=null], "
                        + "Column[name=name,columnNumber=1,type=STRING,nullable=true,nativeType=XML Text,columnSize=null]]",
                Arrays.toString(table.getColumns()));
View Full Code Here

        if (maxRows == 0) {
            return new EmptyDataSet(selectItems);
        }

        final Schema schema = table.getSchema();
        final String schemaName;
        if (schema == null) {
            schemaName = null;
        } else {
            schemaName = schema.getName();
        }

        final DataSet dataSet;
        if (INFORMATION_SCHEMA_NAME.equals(schemaName)) {
            final DataSet informationDataSet = materializeInformationSchemaTable(table, selectItems, maxRows);
View Full Code Here

        assertFalse(ds.next());
    }

    public void testOpenXlsxFormat() throws Exception {
        ExcelDataContext dc = new ExcelDataContext(new File("src/test/resources/Spreadsheet2007.xlsx"));
        Schema schema = dc.getDefaultSchema();
        assertEquals("Schema[name=Spreadsheet2007.xlsx]", schema.toString());

        assertEquals("[Sheet1, Sheet2, Sheet3]", Arrays.toString(schema.getTableNames()));

        assertEquals(0, schema.getTableByName("Sheet2").getColumnCount());
        assertEquals(0, schema.getTableByName("Sheet3").getColumnCount());

        Table table = schema.getTableByName("Sheet1");

        assertEquals("[string, number, date]", Arrays.toString(table.getColumnNames()));

        Query q = dc.query().from(table).select(table.getColumns()).orderBy(table.getColumnByName("number")).toQuery();
        DataSet ds = dc.executeQuery(q);
View Full Code Here

TOP

Related Classes of org.apache.metamodel.schema.Schema

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.