You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metamodel.apache.org by ka...@apache.org on 2013/07/22 10:10:45 UTC

[32/64] [partial] Hard rename of all 'org/eobjects' folders to 'org/apache'.

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/e2e2b37a/core/src/main/java/org/eobjects/metamodel/query/builder/ColumnSelectBuilderImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eobjects/metamodel/query/builder/ColumnSelectBuilderImpl.java b/core/src/main/java/org/eobjects/metamodel/query/builder/ColumnSelectBuilderImpl.java
deleted file mode 100644
index 161a36f..0000000
--- a/core/src/main/java/org/eobjects/metamodel/query/builder/ColumnSelectBuilderImpl.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.eobjects.metamodel.query.builder;
-
-import java.util.List;
-
-import org.eobjects.metamodel.query.Query;
-import org.eobjects.metamodel.query.SelectItem;
-import org.eobjects.metamodel.schema.Column;
-
-final class ColumnSelectBuilderImpl extends SatisfiedSelectBuilderImpl
-		implements ColumnSelectBuilder<GroupedQueryBuilder> {
-
-	private SelectItem selectItem;
-
-	public ColumnSelectBuilderImpl(Column column, Query query,
-			GroupedQueryBuilder queryBuilder) {
-		super(queryBuilder);
-		this.selectItem = new SelectItem(column);
-
-		query.select(selectItem);
-	}
-
-	@Override
-	public GroupedQueryBuilder as(String alias) {
-		if (alias == null) {
-			throw new IllegalArgumentException("alias cannot be null");
-		}
-		selectItem.setAlias(alias);
-		return getQueryBuilder();
-	}
-
-	@Override
-	protected void decorateIdentity(List<Object> identifiers) {
-		super.decorateIdentity(identifiers);
-		identifiers.add(selectItem);
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/e2e2b37a/core/src/main/java/org/eobjects/metamodel/query/builder/CountSelectBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eobjects/metamodel/query/builder/CountSelectBuilder.java b/core/src/main/java/org/eobjects/metamodel/query/builder/CountSelectBuilder.java
deleted file mode 100644
index 61dd73d..0000000
--- a/core/src/main/java/org/eobjects/metamodel/query/builder/CountSelectBuilder.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.eobjects.metamodel.query.builder;
-
-public interface CountSelectBuilder<B extends SatisfiedQueryBuilder<?>> extends
-		SatisfiedSelectBuilder<B> {
-
-	public B as(String alias);
-}

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/e2e2b37a/core/src/main/java/org/eobjects/metamodel/query/builder/CountSelectBuilderImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eobjects/metamodel/query/builder/CountSelectBuilderImpl.java b/core/src/main/java/org/eobjects/metamodel/query/builder/CountSelectBuilderImpl.java
deleted file mode 100644
index e2114b2..0000000
--- a/core/src/main/java/org/eobjects/metamodel/query/builder/CountSelectBuilderImpl.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.eobjects.metamodel.query.builder;
-
-import java.util.List;
-
-import org.eobjects.metamodel.query.Query;
-import org.eobjects.metamodel.query.SelectItem;
-
-final class CountSelectBuilderImpl extends SatisfiedSelectBuilderImpl implements
-		CountSelectBuilder<GroupedQueryBuilder> {
-
-	private SelectItem selectItem;
-
-	public CountSelectBuilderImpl(Query query, GroupedQueryBuilder queryBuilder) {
-		super(queryBuilder);
-		this.selectItem = SelectItem.getCountAllItem();
-		query.select(selectItem);
-	}
-
-	@Override
-	public GroupedQueryBuilder as(String alias) {
-		if (alias == null) {
-			throw new IllegalArgumentException("alias cannot be null");
-		}
-		selectItem.setAlias(alias);
-		return getQueryBuilder();
-	}
-
-	@Override
-	protected void decorateIdentity(List<Object> identifiers) {
-		super.decorateIdentity(identifiers);
-		identifiers.add(selectItem);
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/e2e2b37a/core/src/main/java/org/eobjects/metamodel/query/builder/FilterBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eobjects/metamodel/query/builder/FilterBuilder.java b/core/src/main/java/org/eobjects/metamodel/query/builder/FilterBuilder.java
deleted file mode 100644
index 0890c50..0000000
--- a/core/src/main/java/org/eobjects/metamodel/query/builder/FilterBuilder.java
+++ /dev/null
@@ -1,355 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.eobjects.metamodel.query.builder;
-
-import java.util.Collection;
-import java.util.Date;
-
-import org.eobjects.metamodel.schema.Column;
-
-/**
- * Interface for builder callbacks that "respond" to filter condition building.
- * 
- * @param <B>
- *            the builder type to return once filter has been created.
- */
-public interface FilterBuilder<B> {
-
-    /**
-     * Not null
-     */
-    public B isNull();
-
-    /**
-     * Is not null
-     */
-    public B isNotNull();
-
-    /**
-     * In ...
-     */
-    public B in(Collection<?> values);
-
-    /**
-     * In ...
-     */
-    public B in(Number... numbers);
-
-    /**
-     * In ...
-     */
-    public B in(String... strings);
-
-    /**
-     * Like ...
-     * 
-     * (use '%' as wildcard).
-     */
-    public B like(String string);
-
-    /**
-     * Equal to ...
-     */
-    public B eq(Column column);
-
-    /**
-     * Equal to ...
-     */
-    public B eq(Date date);
-
-    /**
-     * Equal to ...
-     */
-    public B eq(Number number);
-
-    /**
-     * Equal to ...
-     */
-    public B eq(String string);
-
-    /**
-     * Equal to ...
-     */
-    public B eq(Boolean bool);
-    
-    /**
-     * Equal to ...
-     */
-    public B eq(Object obj);
-
-    /**
-     * Equal to ...
-     */
-    public B isEquals(Column column);
-
-    /**
-     * Equal to ...
-     */
-    public B isEquals(Date date);
-
-    /**
-     * Equal to ...
-     */
-    public B isEquals(Number number);
-
-    /**
-     * Equal to ...
-     */
-    public B isEquals(String string);
-
-    /**
-     * Equal to ...
-     */
-    public B isEquals(Boolean bool);
-    
-    /**
-     * Equal to ...
-     */
-    public B isEquals(Object obj);
-
-    /**
-     * Equal to ...
-     * 
-     * @deprecated use 'eq' or 'isEquals' instead.
-     */
-    @Deprecated
-    public B equals(Column column);
-
-    /**
-     * Equal to ...
-     * 
-     * @deprecated use 'eq' or 'isEquals' instead.
-     */
-    @Deprecated
-    public B equals(Date date);
-
-    /**
-     * Equal to ...
-     * 
-     * @deprecated use 'eq' or 'isEquals' instead.
-     */
-    @Deprecated
-    public B equals(Number number);
-
-    /**
-     * Equal to ...
-     * 
-     * @deprecated use 'eq' or 'isEquals' instead.
-     */
-    @Deprecated
-    public B equals(String string);
-
-    /**
-     * Equal to ...
-     * 
-     * @deprecated use 'eq' or 'isEquals' instead.
-     */
-    @Deprecated
-    public B equals(Boolean bool);
-
-    /**
-     * Not equal to ...
-     */
-    public B differentFrom(Column column);
-
-    /**
-     * Not equal to ...
-     */
-    public B differentFrom(Date date);
-
-    /**
-     * Not equal to ...
-     */
-    public B differentFrom(Number number);
-
-    /**
-     * Not equal to ...
-     */
-    public B differentFrom(String string);
-
-    /**
-     * Not equal to ...
-     */
-    public B differentFrom(Boolean bool);
-    
-    /**
-     * Not equal to ...
-     */
-    public B differentFrom(Object obj);
-
-    /**
-     * Not equal to ...
-     */
-    public B ne(Column column);
-
-    /**
-     * Not equal to ...
-     */
-    public B ne(Date date);
-
-    /**
-     * Not equal to ...
-     */
-    public B ne(Number number);
-
-    /**
-     * Not equal to ...
-     */
-    public B ne(String string);
-
-    /**
-     * Not equal to ...
-     */
-    public B ne(Boolean bool);
-    
-    /**
-     * Not equal to ...
-     */
-    public B ne(Object obj);
-
-    /**
-     * Greater than ...
-     * 
-     * @deprecated use {@link #greaterThan(Column)} instead
-     */
-    @Deprecated
-    public B higherThan(Column column);
-
-    /**
-     * Greater than ...
-     */
-    public B greaterThan(Column column);
-
-    /**
-     * Greater than ...
-     */
-    public B gt(Column column);
-    
-    /**
-     * Greater than ...
-     */
-    public B greaterThan(Object obj);
-    
-    /**
-     * Greater than ...
-     */
-    public B gt(Object obj);
-
-    /**
-     * Greater than ...
-     * 
-     * @deprecated use {@link #greaterThan(Date)} instead
-     */
-    @Deprecated
-    public B higherThan(Date date);
-
-    /**
-     * Greater than ...
-     */
-    public B greaterThan(Date date);
-
-    /**
-     * Greater than ...
-     */
-    public B gt(Date date);
-
-    /**
-     * @deprecated use {@link #greaterThan(Number)} instead
-     */
-    @Deprecated
-    public B higherThan(Number number);
-
-    /**
-     * Greater than ...
-     */
-    public B greaterThan(Number number);
-
-    /**
-     * Greater than ...
-     */
-    public B gt(Number number);
-
-    /**
-     * Greater than ...
-     * 
-     * @deprecated use {@link #greaterThan(String)} instead
-     */
-    @Deprecated
-    public B higherThan(String string);
-
-    /**
-     * Greater than ...
-     */
-    public B greaterThan(String string);
-
-    /**
-     * Greater than ...
-     */
-    public B gt(String string);
-
-    /**
-     * Less than ...
-     */
-    public B lessThan(Column column);
-
-    /**
-     * Less than ...
-     */
-    public B lt(Column column);
-
-    /**
-     * Less than ...
-     */
-    public B lessThan(Date date);
-
-    /**
-     * Less than ...
-     */
-    public B lessThan(Number number);
-
-    /**
-     * Less than ...
-     */
-    public B lessThan(String string);
-    
-    /**
-     * Less than ...
-     */
-    public B lessThan(Object obj);
-    
-    /**
-     * Less than ...
-     */
-    public B lt(Object obj);
-
-    /**
-     * Less than ...
-     */
-    public B lt(Date date);
-
-    /**
-     * Less than ...
-     */
-    public B lt(Number number);
-
-    /**
-     * Less than ...
-     */
-    public B lt(String string);
-}

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/e2e2b37a/core/src/main/java/org/eobjects/metamodel/query/builder/FunctionSelectBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eobjects/metamodel/query/builder/FunctionSelectBuilder.java b/core/src/main/java/org/eobjects/metamodel/query/builder/FunctionSelectBuilder.java
deleted file mode 100644
index 516ce5e..0000000
--- a/core/src/main/java/org/eobjects/metamodel/query/builder/FunctionSelectBuilder.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.eobjects.metamodel.query.builder;
-
-public interface FunctionSelectBuilder<B extends SatisfiedQueryBuilder<?>>
-		extends SatisfiedSelectBuilder<B> {
-
-	public B as(String alias);
-}

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/e2e2b37a/core/src/main/java/org/eobjects/metamodel/query/builder/FunctionSelectBuilderImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eobjects/metamodel/query/builder/FunctionSelectBuilderImpl.java b/core/src/main/java/org/eobjects/metamodel/query/builder/FunctionSelectBuilderImpl.java
deleted file mode 100644
index 68e9b39..0000000
--- a/core/src/main/java/org/eobjects/metamodel/query/builder/FunctionSelectBuilderImpl.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.eobjects.metamodel.query.builder;
-
-import java.util.List;
-
-import org.eobjects.metamodel.query.FunctionType;
-import org.eobjects.metamodel.query.Query;
-import org.eobjects.metamodel.query.SelectItem;
-import org.eobjects.metamodel.schema.Column;
-
-final class FunctionSelectBuilderImpl extends SatisfiedSelectBuilderImpl
-		implements FunctionSelectBuilder<GroupedQueryBuilder> {
-
-	private SelectItem selectItem;
-
-	public FunctionSelectBuilderImpl(FunctionType functionType, Column column,
-			Query query, GroupedQueryBuilder queryBuilder) {
-		super(queryBuilder);
-
-		this.selectItem = new SelectItem(functionType, column);
-
-		query.select(selectItem);
-	}
-
-	@Override
-	public GroupedQueryBuilder as(String alias) {
-		if (alias == null) {
-			throw new IllegalArgumentException("alias cannot be null");
-		}
-		selectItem.setAlias(alias);
-		return getQueryBuilder();
-	}
-
-	@Override
-	protected void decorateIdentity(List<Object> identifiers) {
-		super.decorateIdentity(identifiers);
-		identifiers.add(selectItem);
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/e2e2b37a/core/src/main/java/org/eobjects/metamodel/query/builder/GroupedQueryBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eobjects/metamodel/query/builder/GroupedQueryBuilder.java b/core/src/main/java/org/eobjects/metamodel/query/builder/GroupedQueryBuilder.java
deleted file mode 100644
index d798d9b..0000000
--- a/core/src/main/java/org/eobjects/metamodel/query/builder/GroupedQueryBuilder.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.eobjects.metamodel.query.builder;
-
-import org.eobjects.metamodel.query.FunctionType;
-import org.eobjects.metamodel.schema.Column;
-
-/**
- * Represents a built query that has a GROUP BY clause.
- * 
- * @author Kasper Sørensen
- * 
- */
-public interface GroupedQueryBuilder extends
-		SatisfiedQueryBuilder<GroupedQueryBuilder> {
-
-	public HavingBuilder having(FunctionType functionType, Column column);
-
-	public SatisfiedOrderByBuilder<GroupedQueryBuilder> orderBy(
-			FunctionType function, Column column);
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/e2e2b37a/core/src/main/java/org/eobjects/metamodel/query/builder/GroupedQueryBuilderCallback.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eobjects/metamodel/query/builder/GroupedQueryBuilderCallback.java b/core/src/main/java/org/eobjects/metamodel/query/builder/GroupedQueryBuilderCallback.java
deleted file mode 100644
index 6db7feb..0000000
--- a/core/src/main/java/org/eobjects/metamodel/query/builder/GroupedQueryBuilderCallback.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.eobjects.metamodel.query.builder;
-
-import java.util.List;
-
-import org.eobjects.metamodel.data.DataSet;
-import org.eobjects.metamodel.query.CompiledQuery;
-import org.eobjects.metamodel.query.FilterItem;
-import org.eobjects.metamodel.query.FunctionType;
-import org.eobjects.metamodel.query.Query;
-import org.eobjects.metamodel.schema.Column;
-import org.eobjects.metamodel.util.BaseObject;
-
-abstract class GroupedQueryBuilderCallback extends BaseObject implements GroupedQueryBuilder {
-
-    private GroupedQueryBuilder queryBuilder;
-
-    public GroupedQueryBuilderCallback(GroupedQueryBuilder queryBuilder) {
-        this.queryBuilder = queryBuilder;
-    }
-
-    protected GroupedQueryBuilder getQueryBuilder() {
-        return queryBuilder;
-    }
-    
-    @Override
-    public SatisfiedQueryBuilder<GroupedQueryBuilder> firstRow(int firstRow) {
-        return getQueryBuilder().firstRow(firstRow);
-    }
-    
-    @Override
-    public SatisfiedQueryBuilder<GroupedQueryBuilder> limit(int maxRows) {
-        return getQueryBuilder().limit(maxRows);
-    }
-    
-    @Override
-    public SatisfiedQueryBuilder<GroupedQueryBuilder> offset(int offset) {
-        return getQueryBuilder().offset(offset);
-    }
-    
-    @Override
-    public SatisfiedQueryBuilder<GroupedQueryBuilder> maxRows(int maxRows) {
-        return getQueryBuilder().maxRows(maxRows);
-    }
-
-    @Override
-    public SatisfiedSelectBuilder<GroupedQueryBuilder> select(Column... columns) {
-        return getQueryBuilder().select(columns);
-    }
-
-    @Override
-    public final Column findColumn(String columnName) throws IllegalArgumentException {
-        return getQueryBuilder().findColumn(columnName);
-    }
-
-    @Override
-    public ColumnSelectBuilder<GroupedQueryBuilder> select(Column column) {
-        return getQueryBuilder().select(column);
-    }
-
-    @Override
-    public FunctionSelectBuilder<GroupedQueryBuilder> select(FunctionType functionType, Column column) {
-        return getQueryBuilder().select(functionType, column);
-    }
-
-    @Override
-    public ColumnSelectBuilder<GroupedQueryBuilder> select(String columnName) {
-        return getQueryBuilder().select(columnName);
-    }
-
-    @Override
-    public CountSelectBuilder<GroupedQueryBuilder> selectCount() {
-        return getQueryBuilder().selectCount();
-    }
-
-    @Override
-    public WhereBuilder<GroupedQueryBuilder> where(Column column) {
-        return getQueryBuilder().where(column);
-    }
-
-    @Override
-    public SatisfiedOrderByBuilder<GroupedQueryBuilder> orderBy(Column column) {
-        return getQueryBuilder().orderBy(column);
-    }
-
-    @Override
-    public GroupedQueryBuilder groupBy(String columnName) {
-        return getQueryBuilder().groupBy(columnName);
-    }
-
-    @Override
-    public GroupedQueryBuilder groupBy(Column column) {
-        return getQueryBuilder().groupBy(column);
-    }
-
-    @Override
-    public Query toQuery() {
-        return getQueryBuilder().toQuery();
-    }
-
-    @Override
-    public CompiledQuery compile() {
-        return getQueryBuilder().compile();
-    }
-
-    @Override
-    public HavingBuilder having(FunctionType functionType, Column column) {
-        return getQueryBuilder().having(functionType, column);
-    }
-
-    @Override
-    public GroupedQueryBuilder groupBy(Column... columns) {
-        getQueryBuilder().groupBy(columns);
-        return this;
-    }
-
-    @Override
-    protected void decorateIdentity(List<Object> identifiers) {
-        identifiers.add(queryBuilder);
-    }
-
-    @Override
-    public DataSet execute() {
-        return queryBuilder.execute();
-    }
-
-    @Override
-    public WhereBuilder<GroupedQueryBuilder> where(String columnName) {
-        return getQueryBuilder().where(columnName);
-    }
-
-    @Override
-    public SatisfiedQueryBuilder<GroupedQueryBuilder> where(FilterItem... filters) {
-        return getQueryBuilder().where(filters);
-    }
-
-    @Override
-    public SatisfiedQueryBuilder<GroupedQueryBuilder> where(Iterable<FilterItem> filters) {
-        return getQueryBuilder().where(filters);
-    }
-
-    @Override
-    public SatisfiedOrderByBuilder<GroupedQueryBuilder> orderBy(String columnName) {
-        return getQueryBuilder().orderBy(columnName);
-    }
-
-    @Override
-    public SatisfiedOrderByBuilder<GroupedQueryBuilder> orderBy(FunctionType function, Column column) {
-        return getQueryBuilder().orderBy(function, column);
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/e2e2b37a/core/src/main/java/org/eobjects/metamodel/query/builder/GroupedQueryBuilderImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eobjects/metamodel/query/builder/GroupedQueryBuilderImpl.java b/core/src/main/java/org/eobjects/metamodel/query/builder/GroupedQueryBuilderImpl.java
deleted file mode 100644
index bd5248c..0000000
--- a/core/src/main/java/org/eobjects/metamodel/query/builder/GroupedQueryBuilderImpl.java
+++ /dev/null
@@ -1,332 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.eobjects.metamodel.query.builder;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.eobjects.metamodel.DataContext;
-import org.eobjects.metamodel.data.DataSet;
-import org.eobjects.metamodel.query.CompiledQuery;
-import org.eobjects.metamodel.query.FilterItem;
-import org.eobjects.metamodel.query.FromItem;
-import org.eobjects.metamodel.query.FunctionType;
-import org.eobjects.metamodel.query.Query;
-import org.eobjects.metamodel.query.SelectItem;
-import org.eobjects.metamodel.schema.Column;
-import org.eobjects.metamodel.schema.Table;
-import org.eobjects.metamodel.util.BaseObject;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Main implementation of the {@link GroupedQueryBuilder} interface.
- */
-final class GroupedQueryBuilderImpl extends BaseObject implements GroupedQueryBuilder {
-
-    private static final Logger logger = LoggerFactory.getLogger(GroupedQueryBuilderImpl.class);
-
-    private final Query _query;
-    private final DataContext _dataContext;
-
-    public GroupedQueryBuilderImpl(DataContext dataContext, Query query) {
-        if (query == null) {
-            throw new IllegalArgumentException("query cannot be null");
-        }
-        _dataContext = dataContext;
-        _query = query;
-    }
-
-    @Override
-    public ColumnSelectBuilder<GroupedQueryBuilder> select(Column column) {
-        if (column == null) {
-            throw new IllegalArgumentException("column cannot be null");
-        }
-        return new ColumnSelectBuilderImpl(column, _query, this);
-    }
-
-    @Override
-    public FunctionSelectBuilder<GroupedQueryBuilder> select(FunctionType function, Column column) {
-        if (function == null) {
-            throw new IllegalArgumentException("function cannot be null");
-        }
-        if (column == null) {
-            throw new IllegalArgumentException("column cannot be null");
-        }
-        return new FunctionSelectBuilderImpl(function, column, _query, this);
-    }
-
-    @Override
-    public SatisfiedQueryBuilder<GroupedQueryBuilder> where(FilterItem... filters) {
-        _query.where(filters);
-        return this;
-    }
-
-    @Override
-    public SatisfiedQueryBuilder<GroupedQueryBuilder> where(Iterable<FilterItem> filters) {
-        _query.where(filters);
-        return this;
-    }
-
-    @Override
-    public ColumnSelectBuilder<GroupedQueryBuilder> select(String columnName) {
-        Column column = findColumn(columnName);
-        return select(column);
-    }
-
-    @Override
-    public CountSelectBuilder<GroupedQueryBuilder> selectCount() {
-        return new CountSelectBuilderImpl(_query, this);
-    }
-
-    @Override
-    public SatisfiedSelectBuilder<GroupedQueryBuilder> select(Column... columns) {
-        if (columns == null) {
-            throw new IllegalArgumentException("column cannot be null");
-        }
-        _query.select(columns);
-        return new SatisfiedSelectBuilderImpl(this);
-    }
-
-    @Override
-    public WhereBuilder<GroupedQueryBuilder> where(Column column) {
-        if (column == null) {
-            throw new IllegalArgumentException("column cannot be null");
-        }
-        return new WhereBuilderImpl(column, _query, this);
-    }
-
-    @Override
-    public WhereBuilder<GroupedQueryBuilder> where(String columnName) {
-        Column column = findColumn(columnName);
-        return where(column);
-    }
-
-    @Override
-    public Column findColumn(final String columnName) throws IllegalArgumentException {
-        if (columnName == null) {
-            throw new IllegalArgumentException("columnName cannot be null");
-        }
-
-        final List<FromItem> fromItems = _query.getFromClause().getItems();
-        final List<SelectItem> selectItems = _query.getSelectClause().getItems();
-
-        int dotIndex = columnName.indexOf('.');
-        if (dotIndex != -1) {
-            // check aliases of from items
-            final String aliasPart = columnName.substring(0, dotIndex);
-            final String columnPart = columnName.substring(dotIndex + 1);
-
-            for (FromItem fromItem : fromItems) {
-                Column column = null;
-                column = findColumnInAliasedTable(column, fromItem, aliasPart, columnPart);
-                if (column != null) {
-                    return column;
-                }
-            }
-        }
-
-        // check columns already in select clause
-        for (SelectItem item : selectItems) {
-            Column column = item.getColumn();
-            if (column != null) {
-                if (columnName.equals(column.getName())) {
-                    return column;
-                }
-            }
-        }
-
-        for (FromItem fromItem : fromItems) {
-            Table table = fromItem.getTable();
-            if (table != null) {
-                Column column = table.getColumnByName(columnName);
-                if (column != null) {
-                    return column;
-                }
-            }
-        }
-
-        Column column = _dataContext.getColumnByQualifiedLabel(columnName);
-        if (column != null) {
-            return column;
-        }
-
-        final IllegalArgumentException exception = new IllegalArgumentException("Could not find column: " + columnName);
-
-        if (logger.isDebugEnabled()) {
-            logger.debug("findColumn('" + columnName + "') could not resolve a column", exception);
-            for (FromItem fromItem : fromItems) {
-                final Table table = fromItem.getTable();
-                if (table != null) {
-                    logger.debug("Table available in FROM item: {}. Column names: {}", table,
-                            Arrays.toString(table.getColumnNames()));
-                }
-            }
-        }
-
-        throw exception;
-    }
-
-    private Column findColumnInAliasedTable(Column column, FromItem fromItem, String aliasPart, String columnPart) {
-        if (column != null) {
-            // ensure that if the column has already been found, return it
-            return column;
-        }
-
-        Table table = fromItem.getTable();
-        if (table != null) {
-            String alias = fromItem.getAlias();
-            if (alias != null && alias.equals(aliasPart)) {
-                column = table.getColumnByName(columnPart);
-            }
-        } else {
-            FromItem leftSide = fromItem.getLeftSide();
-            column = findColumnInAliasedTable(column, leftSide, aliasPart, columnPart);
-            FromItem rightSide = fromItem.getRightSide();
-            column = findColumnInAliasedTable(column, rightSide, aliasPart, columnPart);
-            if (column != null) {
-                Query subQuery = fromItem.getSubQuery();
-                if (subQuery != null) {
-                    List<FromItem> items = subQuery.getFromClause().getItems();
-                    for (FromItem subQueryFromItem : items) {
-                        column = findColumnInAliasedTable(column, subQueryFromItem, aliasPart, columnPart);
-                    }
-                }
-            }
-        }
-
-        return column;
-    }
-
-    @Override
-    public SatisfiedOrderByBuilder<GroupedQueryBuilder> orderBy(String columnName) {
-        return orderBy(findColumn(columnName));
-    }
-
-    @Override
-    public SatisfiedOrderByBuilder<GroupedQueryBuilder> orderBy(Column column) {
-        if (column == null) {
-            throw new IllegalArgumentException("column cannot be null");
-        }
-        return new SatisfiedOrderByBuilderImpl(column, _query, this);
-    }
-
-    @Override
-    public SatisfiedOrderByBuilder<GroupedQueryBuilder> orderBy(FunctionType function, Column column) {
-        if (function == null) {
-            throw new IllegalArgumentException("function cannot be null");
-        }
-        if (column == null) {
-            throw new IllegalArgumentException("column cannot be null");
-        }
-        return new SatisfiedOrderByBuilderImpl(function, column, _query, this);
-    }
-
-    @Override
-    public GroupedQueryBuilder groupBy(Column column) {
-        if (column == null) {
-            throw new IllegalArgumentException("column cannot be null");
-        }
-        _query.groupBy(column);
-        return this;
-    }
-
-    @Override
-    public GroupedQueryBuilder groupBy(String columnName) {
-        Column column = findColumn(columnName);
-        return groupBy(column);
-    }
-
-    @Override
-    public GroupedQueryBuilder groupBy(Column... columns) {
-        if (columns == null) {
-            throw new IllegalArgumentException("columns cannot be null");
-        }
-        _query.groupBy(columns);
-        return this;
-    }
-
-    @Override
-    public HavingBuilder having(FunctionType function, Column column) {
-        if (function == null) {
-            throw new IllegalArgumentException("function cannot be null");
-        }
-        if (column == null) {
-            throw new IllegalArgumentException("column cannot be null");
-        }
-        return new HavingBuilderImpl(function, column, _query, this);
-    }
-
-    @Override
-    public SatisfiedQueryBuilder<GroupedQueryBuilder> limit(int maxRows) {
-        _query.setMaxRows(maxRows);
-        return this;
-    }
-
-    @Override
-    public SatisfiedQueryBuilder<GroupedQueryBuilder> maxRows(int maxRows) {
-        _query.setMaxRows(maxRows);
-        return this;
-    }
-
-    @Override
-    public SatisfiedQueryBuilder<GroupedQueryBuilder> firstRow(int firstRow) {
-        if (firstRow >= 0) {
-            _query.setFirstRow(firstRow);
-        } else {
-            _query.setFirstRow(null);
-        }
-        return this;
-    }
-
-    @Override
-    public SatisfiedQueryBuilder<GroupedQueryBuilder> offset(int offset) {
-        if (offset >= 0) {
-            _query.setFirstRow(offset + 1);
-        } else {
-            _query.setFirstRow(null);
-        }
-        return this;
-    }
-
-    @Override
-    public String toString() {
-        return _query.toSql();
-    }
-
-    @Override
-    public Query toQuery() {
-        return _query.clone();
-    }
-
-    @Override
-    public CompiledQuery compile() {
-        return _dataContext.compileQuery(_query);
-    }
-
-    @Override
-    public DataSet execute() {
-        return _dataContext.executeQuery(_query);
-    }
-
-    @Override
-    protected void decorateIdentity(List<Object> identifiers) {
-        identifiers.add(_query);
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/e2e2b37a/core/src/main/java/org/eobjects/metamodel/query/builder/HavingBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eobjects/metamodel/query/builder/HavingBuilder.java b/core/src/main/java/org/eobjects/metamodel/query/builder/HavingBuilder.java
deleted file mode 100644
index 1596ada..0000000
--- a/core/src/main/java/org/eobjects/metamodel/query/builder/HavingBuilder.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.eobjects.metamodel.query.builder;
-
-/**
- * Builder interface for having items.
- */
-public interface HavingBuilder extends FilterBuilder<SatisfiedHavingBuilder> {
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/e2e2b37a/core/src/main/java/org/eobjects/metamodel/query/builder/HavingBuilderImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eobjects/metamodel/query/builder/HavingBuilderImpl.java b/core/src/main/java/org/eobjects/metamodel/query/builder/HavingBuilderImpl.java
deleted file mode 100644
index 13b197d..0000000
--- a/core/src/main/java/org/eobjects/metamodel/query/builder/HavingBuilderImpl.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.eobjects.metamodel.query.builder;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eobjects.metamodel.query.FilterItem;
-import org.eobjects.metamodel.query.FunctionType;
-import org.eobjects.metamodel.query.Query;
-import org.eobjects.metamodel.query.SelectItem;
-import org.eobjects.metamodel.schema.Column;
-
-final class HavingBuilderImpl extends
-		AbstractQueryFilterBuilder<SatisfiedHavingBuilder> implements
-		HavingBuilder, SatisfiedHavingBuilder {
-
-	private final Query _query;
-	private final List<FilterItem> _orFilters;
-	private FilterItem _parentOrFilter;
-
-	public HavingBuilderImpl(FunctionType function, Column column, Query query,
-			GroupedQueryBuilder queryBuilder) {
-		super(new SelectItem(function, column), queryBuilder);
-		_query = query;
-		_orFilters = new ArrayList<FilterItem>();
-	}
-
-	public HavingBuilderImpl(FunctionType function, Column column, Query query,
-			FilterItem parentOrFilter, List<FilterItem> orFilters,
-			GroupedQueryBuilder queryBuilder) {
-		super(new SelectItem(function, column), queryBuilder);
-		_query = query;
-		_orFilters = orFilters;
-		_parentOrFilter = parentOrFilter;
-	}
-
-	@Override
-	protected SatisfiedHavingBuilder applyFilter(FilterItem filter) {
-		if (_parentOrFilter == null) {
-			_query.having(filter);
-		} else {
-			if (_parentOrFilter.getChildItemCount() == 1) {
-				_query.getHavingClause().removeItem(_orFilters.get(0));
-				_query.getHavingClause().addItem(_parentOrFilter);
-			}
-		}
-		_orFilters.add(filter);
-		return this;
-	}
-
-	@Override
-	public HavingBuilder or(FunctionType function, Column column) {
-		if (function == null) {
-			throw new IllegalArgumentException("function cannot be null");
-		}
-		if (column == null) {
-			throw new IllegalArgumentException("column cannot be null");
-		}
-		if (_parentOrFilter == null) {
-			_parentOrFilter = new FilterItem(_orFilters);
-		}
-		return new HavingBuilderImpl(function, column, _query, _parentOrFilter,
-				_orFilters, getQueryBuilder());
-	}
-
-	@Override
-	public HavingBuilder and(FunctionType function, Column column) {
-		return getQueryBuilder().having(function, column);
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/e2e2b37a/core/src/main/java/org/eobjects/metamodel/query/builder/InitFromBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eobjects/metamodel/query/builder/InitFromBuilder.java b/core/src/main/java/org/eobjects/metamodel/query/builder/InitFromBuilder.java
deleted file mode 100644
index fcbdbcf..0000000
--- a/core/src/main/java/org/eobjects/metamodel/query/builder/InitFromBuilder.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.eobjects.metamodel.query.builder;
-
-import org.eobjects.metamodel.schema.Schema;
-import org.eobjects.metamodel.schema.Table;
-
-/**
- * The initial interface used when building a query. A query starts by stating
- * the FROM clause.
- * 
- * @author Kasper Sørensen
- */
-public interface InitFromBuilder {
-
-	public TableFromBuilder from(Table table);
-	
-	public TableFromBuilder from(Schema schema, String tableName);
-
-	public TableFromBuilder from(String schemaName, String tableName);
-
-	public TableFromBuilder from(String tableName);
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/e2e2b37a/core/src/main/java/org/eobjects/metamodel/query/builder/InitFromBuilderImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eobjects/metamodel/query/builder/InitFromBuilderImpl.java b/core/src/main/java/org/eobjects/metamodel/query/builder/InitFromBuilderImpl.java
deleted file mode 100644
index 3d523a8..0000000
--- a/core/src/main/java/org/eobjects/metamodel/query/builder/InitFromBuilderImpl.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.eobjects.metamodel.query.builder;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.eobjects.metamodel.DataContext;
-import org.eobjects.metamodel.query.Query;
-import org.eobjects.metamodel.schema.Schema;
-import org.eobjects.metamodel.schema.Table;
-import org.eobjects.metamodel.util.BaseObject;
-
-public final class InitFromBuilderImpl extends BaseObject implements InitFromBuilder {
-
-    private DataContext dataContext;
-    private Query query;
-
-    public InitFromBuilderImpl(DataContext dataContext) {
-        this.dataContext = dataContext;
-        this.query = new Query();
-    }
-
-    @Override
-    public TableFromBuilder from(Table table) {
-        if (table == null) {
-            throw new IllegalArgumentException("table cannot be null");
-        }
-        return new TableFromBuilderImpl(table, query, dataContext);
-    }
-
-    @Override
-    public TableFromBuilder from(String schemaName, String tableName) {
-        if (schemaName == null) {
-            throw new IllegalArgumentException("schemaName cannot be null");
-        }
-        if (tableName == null) {
-            throw new IllegalArgumentException("tableName cannot be null");
-        }
-        Schema schema = dataContext.getSchemaByName(schemaName);
-        if (schema == null) {
-            schema = dataContext.getDefaultSchema();
-        }
-        return from(schema, tableName);
-    }
-
-    @Override
-    public TableFromBuilder from(Schema schema, String tableName) {
-        Table table = schema.getTableByName(tableName);
-        if (table == null) {
-            throw new IllegalArgumentException("Nu such table '" + tableName + "' found in schema: " + schema
-                    + ". Available tables are: " + Arrays.toString(schema.getTableNames()));
-        }
-        return from(table);
-    }
-
-    @Override
-    public TableFromBuilder from(String tableName) {
-        if (tableName == null) {
-            throw new IllegalArgumentException("tableName cannot be null");
-        }
-        Table table = dataContext.getTableByQualifiedLabel(tableName);
-        if (table == null) {
-            throw new IllegalArgumentException("No such table: " + tableName);
-        }
-        return from(table);
-    }
-
-    @Override
-    protected void decorateIdentity(List<Object> identifiers) {
-        identifiers.add(query);
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/e2e2b37a/core/src/main/java/org/eobjects/metamodel/query/builder/JoinFromBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eobjects/metamodel/query/builder/JoinFromBuilder.java b/core/src/main/java/org/eobjects/metamodel/query/builder/JoinFromBuilder.java
deleted file mode 100644
index 1cad5fc..0000000
--- a/core/src/main/java/org/eobjects/metamodel/query/builder/JoinFromBuilder.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.eobjects.metamodel.query.builder;
-
-import org.eobjects.metamodel.schema.Column;
-
-public interface JoinFromBuilder extends SatisfiedFromBuilder {
-
-	public SatisfiedFromBuilder on(Column left, Column right);
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/e2e2b37a/core/src/main/java/org/eobjects/metamodel/query/builder/JoinFromBuilderImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eobjects/metamodel/query/builder/JoinFromBuilderImpl.java b/core/src/main/java/org/eobjects/metamodel/query/builder/JoinFromBuilderImpl.java
deleted file mode 100644
index 6e9520c..0000000
--- a/core/src/main/java/org/eobjects/metamodel/query/builder/JoinFromBuilderImpl.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.eobjects.metamodel.query.builder;
-
-import java.util.List;
-
-import org.eobjects.metamodel.DataContext;
-import org.eobjects.metamodel.query.FromItem;
-import org.eobjects.metamodel.query.JoinType;
-import org.eobjects.metamodel.query.Query;
-import org.eobjects.metamodel.query.SelectItem;
-import org.eobjects.metamodel.schema.Column;
-import org.eobjects.metamodel.schema.Table;
-
-final class JoinFromBuilderImpl extends SatisfiedFromBuilderCallback implements
-		JoinFromBuilder {
-
-	private JoinType joinType;
-	private FromItem leftItem;
-	private FromItem rightItem;
-
-	public JoinFromBuilderImpl(Query query, FromItem leftItem,
-			Table rightTable, JoinType joinType, DataContext dataContext) {
-		super(query, dataContext);
-		this.joinType = joinType;
-		this.leftItem = leftItem;
-		this.rightItem = new FromItem(rightTable);
-	}
-
-	@Override
-	public SatisfiedFromBuilder on(Column left, Column right) {
-		if (left == null) {
-			throw new IllegalArgumentException("left cannot be null");
-		}
-		if (right == null) {
-			throw new IllegalArgumentException("right cannot be null");
-		}
-		getQuery().getFromClause().removeItem(leftItem);
-
-		SelectItem[] leftOn = new SelectItem[] { new SelectItem(left) };
-		SelectItem[] rightOn = new SelectItem[] { new SelectItem(right) };
-		FromItem fromItem = new FromItem(joinType, leftItem, rightItem, leftOn,
-				rightOn);
-
-		getQuery().from(fromItem);
-
-		return this;
-	}
-	
-	@Override
-	protected void decorateIdentity(List<Object> identifiers) {
-		super.decorateIdentity(identifiers);
-		identifiers.add(joinType);
-		identifiers.add(leftItem);
-		identifiers.add(rightItem);
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/e2e2b37a/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedFromBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedFromBuilder.java b/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedFromBuilder.java
deleted file mode 100644
index 6cc2611..0000000
--- a/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedFromBuilder.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.eobjects.metamodel.query.builder;
-
-import org.eobjects.metamodel.query.FunctionType;
-import org.eobjects.metamodel.schema.Column;
-import org.eobjects.metamodel.schema.Table;
-
-/**
- * Represents a builder where the FROM part is satisfied, ie. a SELECT clause is
- * now buildable.
- * 
- * @author Kasper Sørensen
- */
-public interface SatisfiedFromBuilder {
-
-    public TableFromBuilder and(Table table);
-
-    public TableFromBuilder and(String schemaName, String tableName);
-
-    public TableFromBuilder and(String tableName);
-
-    public ColumnSelectBuilder<?> select(Column column);
-
-    public FunctionSelectBuilder<?> select(FunctionType functionType, Column column);
-
-    public CountSelectBuilder<?> selectCount();
-
-    public SatisfiedSelectBuilder<?> select(Column... columns);
-    
-    public SatisfiedSelectBuilder<?> selectAll();
-
-    public ColumnSelectBuilder<?> select(String columnName);
-
-    public SatisfiedSelectBuilder<?> select(String... columnNames);
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/e2e2b37a/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedFromBuilderCallback.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedFromBuilderCallback.java b/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedFromBuilderCallback.java
deleted file mode 100644
index d6798c2..0000000
--- a/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedFromBuilderCallback.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.eobjects.metamodel.query.builder;
-
-import java.util.List;
-
-import org.eobjects.metamodel.DataContext;
-import org.eobjects.metamodel.query.FunctionType;
-import org.eobjects.metamodel.query.Query;
-import org.eobjects.metamodel.schema.Column;
-import org.eobjects.metamodel.schema.Schema;
-import org.eobjects.metamodel.schema.Table;
-import org.eobjects.metamodel.util.BaseObject;
-
-abstract class SatisfiedFromBuilderCallback extends BaseObject implements SatisfiedFromBuilder {
-
-    private Query query;
-    private DataContext dataContext;
-
-    public SatisfiedFromBuilderCallback(Query query, DataContext dataContext) {
-        this.query = query;
-        this.dataContext = dataContext;
-    }
-
-    protected Query getQuery() {
-        return query;
-    }
-
-    protected DataContext getDataContext() {
-        return dataContext;
-    }
-
-    @Override
-    public TableFromBuilder and(Table table) {
-        if (table == null) {
-            throw new IllegalArgumentException("table cannot be null");
-        }
-
-        return new TableFromBuilderImpl(table, query, dataContext);
-    }
-
-    @Override
-    public ColumnSelectBuilder<?> select(Column column) {
-        if (column == null) {
-            throw new IllegalArgumentException("column cannot be null");
-        }
-
-        GroupedQueryBuilder queryBuilder = new GroupedQueryBuilderImpl(dataContext, query);
-        return new ColumnSelectBuilderImpl(column, query, queryBuilder);
-    }
-
-    @Override
-    public SatisfiedSelectBuilder<?> selectAll() {
-        getQuery().selectAll();
-        GroupedQueryBuilder queryBuilder = new GroupedQueryBuilderImpl(dataContext, query);
-        return new SatisfiedSelectBuilderImpl(queryBuilder);
-    }
-
-    @Override
-    public FunctionSelectBuilder<?> select(FunctionType functionType, Column column) {
-        if (functionType == null) {
-            throw new IllegalArgumentException("functionType cannot be null");
-        }
-        if (column == null) {
-            throw new IllegalArgumentException("column cannot be null");
-        }
-
-        GroupedQueryBuilder queryBuilder = new GroupedQueryBuilderImpl(dataContext, query);
-        return new FunctionSelectBuilderImpl(functionType, column, query, queryBuilder);
-    }
-
-    @Override
-    public CountSelectBuilder<?> selectCount() {
-        GroupedQueryBuilder queryBuilder = new GroupedQueryBuilderImpl(dataContext, query);
-        return new CountSelectBuilderImpl(query, queryBuilder);
-    }
-
-    @Override
-    public TableFromBuilder and(String schemaName, String tableName) {
-        if (schemaName == null) {
-            throw new IllegalArgumentException("schemaName cannot be null");
-        }
-        if (tableName == null) {
-            throw new IllegalArgumentException("tableName cannot be null");
-        }
-
-        Schema schema = dataContext.getSchemaByName(schemaName);
-        if (schema == null) {
-            schema = dataContext.getDefaultSchema();
-        }
-        return and(schema, tableName);
-    }
-
-    private TableFromBuilder and(Schema schema, String tableName) {
-        Table table = schema.getTableByName(tableName);
-        return and(table);
-    }
-
-    @Override
-    public TableFromBuilder and(String tableName) {
-        if (tableName == null) {
-            throw new IllegalArgumentException("tableName cannot be null");
-        }
-        return and(dataContext.getDefaultSchema(), tableName);
-    }
-
-    @Override
-    public SatisfiedSelectBuilder<?> select(Column... columns) {
-        if (columns == null) {
-            throw new IllegalArgumentException("columns cannot be null");
-        }
-        query.select(columns);
-        GroupedQueryBuilder queryBuilder = new GroupedQueryBuilderImpl(dataContext, query);
-        return new SatisfiedSelectBuilderImpl(queryBuilder);
-    }
-
-    @Override
-    public SatisfiedSelectBuilder<?> select(String... columnNames) {
-        if (columnNames == null) {
-            throw new IllegalArgumentException("columnNames cannot be null");
-        }
-        for (String columnName : columnNames) {
-            select(columnName);
-        }
-        GroupedQueryBuilder queryBuilder = new GroupedQueryBuilderImpl(dataContext, query);
-        return new SatisfiedSelectBuilderImpl(queryBuilder);
-    }
-
-    @Override
-    public ColumnSelectBuilder<?> select(String columnName) {
-        if (columnName == null) {
-            throw new IllegalArgumentException("columnName cannot be null");
-        }
-
-        GroupedQueryBuilderImpl queryBuilder = new GroupedQueryBuilderImpl(dataContext, query);
-        Column column = queryBuilder.findColumn(columnName);
-        return select(column);
-    }
-
-    @Override
-    protected void decorateIdentity(List<Object> identifiers) {
-        identifiers.add(query);
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/e2e2b37a/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedHavingBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedHavingBuilder.java b/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedHavingBuilder.java
deleted file mode 100644
index b5c6efe..0000000
--- a/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedHavingBuilder.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.eobjects.metamodel.query.builder;
-
-import org.eobjects.metamodel.query.FunctionType;
-import org.eobjects.metamodel.schema.Column;
-
-public interface SatisfiedHavingBuilder extends GroupedQueryBuilder {
-
-	public HavingBuilder or(FunctionType functionType, Column column);
-
-	public HavingBuilder and(FunctionType functionType, Column column);
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/e2e2b37a/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedOrderByBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedOrderByBuilder.java b/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedOrderByBuilder.java
deleted file mode 100644
index a7023cf..0000000
--- a/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedOrderByBuilder.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.eobjects.metamodel.query.builder;
-
-import org.eobjects.metamodel.schema.Column;
-
-public interface SatisfiedOrderByBuilder<B extends SatisfiedQueryBuilder<?>>
-		extends SatisfiedQueryBuilder<B> {
-
-	public B asc();
-
-	public B desc();
-
-	public SatisfiedOrderByBuilder<B> and(Column column);
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/e2e2b37a/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedOrderByBuilderImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedOrderByBuilderImpl.java b/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedOrderByBuilderImpl.java
deleted file mode 100644
index 5ebe755..0000000
--- a/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedOrderByBuilderImpl.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.eobjects.metamodel.query.builder;
-
-import org.eobjects.metamodel.query.FunctionType;
-import org.eobjects.metamodel.query.OrderByItem;
-import org.eobjects.metamodel.query.OrderByItem.Direction;
-import org.eobjects.metamodel.query.Query;
-import org.eobjects.metamodel.query.SelectItem;
-import org.eobjects.metamodel.schema.Column;
-
-final class SatisfiedOrderByBuilderImpl extends GroupedQueryBuilderCallback
-		implements SatisfiedOrderByBuilder<GroupedQueryBuilder> {
-
-	private OrderByItem orderByitem;
-
-	public SatisfiedOrderByBuilderImpl(Column column, Query query,
-			GroupedQueryBuilder queryBuilder) {
-		super(queryBuilder);
-		orderByitem = new OrderByItem(new SelectItem(column));
-		query.orderBy(orderByitem);
-	}
-
-	public SatisfiedOrderByBuilderImpl(FunctionType function, Column column,
-			Query query, GroupedQueryBuilder queryBuilder) {
-		super(queryBuilder);
-		orderByitem = new OrderByItem(new SelectItem(function, column));
-		query.orderBy(orderByitem);
-	}
-
-	@Override
-	public GroupedQueryBuilder asc() {
-		orderByitem.setDirection(Direction.ASC);
-		return getQueryBuilder();
-	}
-
-	@Override
-	public GroupedQueryBuilder desc() {
-		orderByitem.setDirection(Direction.DESC);
-		return getQueryBuilder();
-	}
-	
-	@Override
-	public SatisfiedOrderByBuilder<GroupedQueryBuilder> and(Column column) {
-		return getQueryBuilder().orderBy(column);
-	}
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/e2e2b37a/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedQueryBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedQueryBuilder.java b/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedQueryBuilder.java
deleted file mode 100644
index dd98935..0000000
--- a/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedQueryBuilder.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.eobjects.metamodel.query.builder;
-
-import org.eobjects.metamodel.DataContext;
-import org.eobjects.metamodel.data.DataSet;
-import org.eobjects.metamodel.query.CompiledQuery;
-import org.eobjects.metamodel.query.FilterItem;
-import org.eobjects.metamodel.query.FunctionType;
-import org.eobjects.metamodel.query.Query;
-import org.eobjects.metamodel.schema.Column;
-
-/**
- * Represents a built query that is satisfied and ready for querying or further
- * building.
- * 
- * @author Kasper Sørensen
- * 
- * @param <B>
- */
-public interface SatisfiedQueryBuilder<B extends SatisfiedQueryBuilder<?>> {
-
-    public ColumnSelectBuilder<B> select(Column column);
-
-    public SatisfiedSelectBuilder<B> select(Column... columns);
-
-    /**
-     * Sets the offset (number of rows to skip) of the query that is being
-     * built.
-     * 
-     * Note that this number is a 0-based variant of invoking
-     * {@link #firstRow(int)}.
-     * 
-     * @param offset
-     *            the number of rows to skip
-     * @return
-     */
-    public SatisfiedQueryBuilder<B> offset(int offset);
-
-    /**
-     * Sets the first row of the query that is being built.
-     * 
-     * Note that this is a 1-based variant of invoking {@link #limit(int)}.
-     * 
-     * @param firstRow
-     * @return
-     */
-    public SatisfiedQueryBuilder<B> firstRow(int firstRow);
-
-    /**
-     * Sets the limit (aka. max rows) of the query that is being built.
-     * 
-     * @param maxRows
-     * @return
-     */
-    public SatisfiedQueryBuilder<B> limit(int limit);
-
-    /**
-     * Sets the max rows (aka. limit) of the query that is being built.
-     * 
-     * @param maxRows
-     * @return
-     */
-    public SatisfiedQueryBuilder<B> maxRows(int maxRows);
-
-    public FunctionSelectBuilder<B> select(FunctionType functionType, Column column);
-
-    public CountSelectBuilder<B> selectCount();
-
-    public ColumnSelectBuilder<B> select(String columnName);
-
-    public WhereBuilder<B> where(Column column);
-
-    public WhereBuilder<B> where(String columnName);
-
-    public SatisfiedQueryBuilder<B> where(FilterItem... filters);
-
-    public SatisfiedQueryBuilder<B> where(Iterable<FilterItem> filters);
-
-    public SatisfiedOrderByBuilder<B> orderBy(String columnName);
-
-    public SatisfiedOrderByBuilder<B> orderBy(Column column);
-
-    public GroupedQueryBuilder groupBy(String columnName);
-
-    public GroupedQueryBuilder groupBy(Column column);
-
-    public B groupBy(Column... columns);
-
-    /**
-     * Gets the built query as a {@link Query} object. Typically the returned
-     * query will be a clone of the built query to prevent conflicting
-     * mutations.
-     * 
-     * @return a {@link Query} object representing the built query.
-     */
-    public Query toQuery();
-
-    public CompiledQuery compile();
-
-    /**
-     * Executes the built query. This call is similar to calling
-     * {@link #toQuery()} and then {@link DataContext#executeQuery(Query)}.
-     * 
-     * @return the {@link DataSet} that is returned by executing the query.
-     */
-    public DataSet execute();
-
-    /**
-     * Finds a column by name within the already defined FROM items
-     * 
-     * @param columnName
-     * @return
-     * @throws IllegalArgumentException
-     */
-    public Column findColumn(String columnName) throws IllegalArgumentException;
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/e2e2b37a/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedSelectBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedSelectBuilder.java b/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedSelectBuilder.java
deleted file mode 100644
index 886b763..0000000
--- a/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedSelectBuilder.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.eobjects.metamodel.query.builder;
-
-import org.eobjects.metamodel.query.FunctionType;
-import org.eobjects.metamodel.schema.Column;
-
-public interface SatisfiedSelectBuilder<B extends SatisfiedQueryBuilder<?>>
-		extends SatisfiedQueryBuilder<B> {
-	
-	public ColumnSelectBuilder<B> and(Column column);
-
-	public SatisfiedSelectBuilder<B> and(Column ... columns);
-
-	public FunctionSelectBuilder<B> and(FunctionType function,
-			Column column);
-	
-	public SatisfiedSelectBuilder<B> and(String columnName);
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/e2e2b37a/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedSelectBuilderImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedSelectBuilderImpl.java b/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedSelectBuilderImpl.java
deleted file mode 100644
index 2fe66ce..0000000
--- a/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedSelectBuilderImpl.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.eobjects.metamodel.query.builder;
-
-import org.eobjects.metamodel.query.FunctionType;
-import org.eobjects.metamodel.schema.Column;
-
-class SatisfiedSelectBuilderImpl extends GroupedQueryBuilderCallback implements
-		SatisfiedSelectBuilder<GroupedQueryBuilder> {
-
-	public SatisfiedSelectBuilderImpl(GroupedQueryBuilder queryBuilder) {
-		super(queryBuilder);
-	}
-
-	@Override
-	public ColumnSelectBuilder<GroupedQueryBuilder> and(Column column) {
-		if (column == null) {
-			throw new IllegalArgumentException("column cannot be null");
-		}
-		return getQueryBuilder().select(column);
-	}
-
-	@Override
-	public SatisfiedSelectBuilder<GroupedQueryBuilder> and(Column... columns) {
-		if (columns == null) {
-			throw new IllegalArgumentException("columns cannot be null");
-		}
-		return getQueryBuilder().select(columns);
-	}
-
-	@Override
-	public FunctionSelectBuilder<GroupedQueryBuilder> and(
-			FunctionType functionType, Column column) {
-		if (functionType == null) {
-			throw new IllegalArgumentException("functionType cannot be null");
-		}
-		if (column == null) {
-			throw new IllegalArgumentException("column cannot be null");
-		}
-		return getQueryBuilder().select(functionType, column);
-	}
-
-	@Override
-	public SatisfiedSelectBuilder<GroupedQueryBuilder> and(String columnName) {
-		if (columnName == null) {
-			throw new IllegalArgumentException("columnName cannot be null");
-		}
-		return getQueryBuilder().select(columnName);
-	}
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/e2e2b37a/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedWhereBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedWhereBuilder.java b/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedWhereBuilder.java
deleted file mode 100644
index d236ed2..0000000
--- a/core/src/main/java/org/eobjects/metamodel/query/builder/SatisfiedWhereBuilder.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.eobjects.metamodel.query.builder;
-
-import org.eobjects.metamodel.schema.Column;
-
-public interface SatisfiedWhereBuilder<B extends SatisfiedQueryBuilder<?>>
-		extends SatisfiedQueryBuilder<B> {
-    
-    public WhereBuilder<B> or(String columnName);
-
-	public WhereBuilder<B> or(Column column);
-	
-	public WhereBuilder<B> and(String columnName);
-	
-	public WhereBuilder<B> and(Column column);
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/e2e2b37a/core/src/main/java/org/eobjects/metamodel/query/builder/TableFromBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eobjects/metamodel/query/builder/TableFromBuilder.java b/core/src/main/java/org/eobjects/metamodel/query/builder/TableFromBuilder.java
deleted file mode 100644
index d030653..0000000
--- a/core/src/main/java/org/eobjects/metamodel/query/builder/TableFromBuilder.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.eobjects.metamodel.query.builder;
-
-import org.eobjects.metamodel.schema.Table;
-
-public interface TableFromBuilder extends
-		SatisfiedFromBuilder {
-
-	public JoinFromBuilder innerJoin(Table table);
-	
-	public JoinFromBuilder leftJoin(Table table);
-	
-	public JoinFromBuilder rightJoin(Table table);
-
-	public TableFromBuilder as(String alias);
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/e2e2b37a/core/src/main/java/org/eobjects/metamodel/query/builder/TableFromBuilderImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eobjects/metamodel/query/builder/TableFromBuilderImpl.java b/core/src/main/java/org/eobjects/metamodel/query/builder/TableFromBuilderImpl.java
deleted file mode 100644
index 4460d8e..0000000
--- a/core/src/main/java/org/eobjects/metamodel/query/builder/TableFromBuilderImpl.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.eobjects.metamodel.query.builder;
-
-import java.util.List;
-
-import org.eobjects.metamodel.DataContext;
-import org.eobjects.metamodel.query.FromItem;
-import org.eobjects.metamodel.query.JoinType;
-import org.eobjects.metamodel.query.Query;
-import org.eobjects.metamodel.schema.Table;
-
-final class TableFromBuilderImpl extends SatisfiedFromBuilderCallback implements
-		TableFromBuilder {
-
-	private FromItem fromItem;
-
-	public TableFromBuilderImpl(Table table, Query query,
-			DataContext dataContext) {
-		super(query, dataContext);
-
-		fromItem = new FromItem(table);
-		query.from(fromItem);
-	}
-
-	@Override
-	public JoinFromBuilder innerJoin(Table table) {
-		if (table == null) {
-			throw new IllegalArgumentException("table cannot be null");
-		}
-		return new JoinFromBuilderImpl(getQuery(), fromItem, table,
-				JoinType.INNER, getDataContext());
-	}
-
-	@Override
-	public JoinFromBuilder leftJoin(Table table) {
-		if (table == null) {
-			throw new IllegalArgumentException("table cannot be null");
-		}
-		return new JoinFromBuilderImpl(getQuery(), fromItem, table,
-				JoinType.LEFT, getDataContext());
-	}
-
-	@Override
-	public JoinFromBuilder rightJoin(Table table) {
-		if (table == null) {
-			throw new IllegalArgumentException("table cannot be null");
-		}
-		return new JoinFromBuilderImpl(getQuery(), fromItem, table,
-				JoinType.RIGHT, getDataContext());
-	}
-
-	@Override
-	public TableFromBuilder as(String alias) {
-		if (alias == null) {
-			throw new IllegalArgumentException("alias cannot be null");
-		}
-		fromItem.setAlias(alias);
-		return this;
-	}
-
-	@Override
-	protected void decorateIdentity(List<Object> identifiers) {
-		super.decorateIdentity(identifiers);
-		identifiers.add(fromItem);
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/e2e2b37a/core/src/main/java/org/eobjects/metamodel/query/builder/WhereBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/eobjects/metamodel/query/builder/WhereBuilder.java b/core/src/main/java/org/eobjects/metamodel/query/builder/WhereBuilder.java
deleted file mode 100644
index 3055214..0000000
--- a/core/src/main/java/org/eobjects/metamodel/query/builder/WhereBuilder.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.eobjects.metamodel.query.builder;
-
-import org.eobjects.metamodel.query.CompiledQuery;
-import org.eobjects.metamodel.query.QueryParameter;
-
-/**
- * Builder interface for WHERE items.
- * 
- * In addition to the {@link FilterBuilder}, the WHERE builder allows using
- * {@link QueryParameter}s as operands in the generated filters.
- * 
- * @param <B>
- */
-public interface WhereBuilder<B extends SatisfiedQueryBuilder<?>> extends FilterBuilder<SatisfiedWhereBuilder<B>> {
-
-    /**
-     * Equals to a query parameter. Can be used with {@link CompiledQuery}
-     * objects.
-     */
-    public SatisfiedWhereBuilder<B> eq(QueryParameter queryParameter);
-
-    /**
-     * Equals to a query parameter. Can be used with {@link CompiledQuery}
-     * objects.
-     */
-    public SatisfiedWhereBuilder<B> isEquals(QueryParameter queryParameter);
-
-    /**
-     * Not equals to a query parameter. Can be used with {@link CompiledQuery}
-     * objects.
-     */
-    public SatisfiedWhereBuilder<B> differentFrom(QueryParameter queryParameter);
-
-    /**
-     * Not equals to a query parameter. Can be used with {@link CompiledQuery}
-     * objects.
-     */
-    public SatisfiedWhereBuilder<B> ne(QueryParameter queryParameter);
-
-    /**
-     * Greater than a query parameter. Can be used with {@link CompiledQuery}
-     * objects.
-     */
-    public SatisfiedWhereBuilder<B> greaterThan(QueryParameter queryParameter);
-
-    /**
-     * Greater than a query parameter. Can be used with {@link CompiledQuery}
-     * objects.
-     */
-    public SatisfiedWhereBuilder<B> gt(QueryParameter queryParameter);
-
-    /**
-     * Less than a query parameter. Can be used with {@link CompiledQuery}
-     * objects.
-     */
-    public SatisfiedWhereBuilder<B> lessThan(QueryParameter queryParameter);
-
-    /**
-     * Less than a query parameter. Can be used with {@link CompiledQuery}
-     * objects.
-     */
-    public SatisfiedWhereBuilder<B> lt(QueryParameter queryParameter);
-
-    /**
-     * Like a query parameter. Can be used with {@link CompiledQuery} objects.
-     */
-    public SatisfiedWhereBuilder<B> like(QueryParameter queryParameter);
-}
\ No newline at end of file