Repository: jena
Updated Branches:
  refs/heads/master fab10e555 -> b74bd7ddb


Delete old classes

git-svn-id: http://svn.apache.org/repos/asf/jena/Experimental/jena-csv@1611870 
13f79535-47bb-0310-9956-ffa450edef68


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/20cdd495
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/20cdd495
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/20cdd495

Branch: refs/heads/master
Commit: 20cdd495393f1d2b0a5b8b7f6102e927fd322d84
Parents: f2f32d7
Author: Ying Jiang <[email protected]>
Authored: Sat Jul 19 09:45:43 2014 +0000
Committer: Ying Jiang <[email protected]>
Committed: Sat Jul 19 09:45:43 2014 +0000

----------------------------------------------------------------------
 .../com/hp/hpl/jena/propertytable/Column.java   |  38 ---
 .../hpl/jena/propertytable/PropertyTable.java   | 109 -------
 .../java/com/hp/hpl/jena/propertytable/Row.java |  75 -----
 .../hpl/jena/propertytable/impl/ColumnImpl.java |  43 ---
 .../hpl/jena/propertytable/impl/GraphCSV.java   |  53 ---
 .../propertytable/impl/GraphPropertyTable.java  | 194 -----------
 .../impl/PropertyTableArrayImpl.java            | 272 ----------------
 .../impl/PropertyTableBuilder.java              | 113 -------
 .../impl/PropertyTableHashMapImpl.java          | 323 -------------------
 .../impl/QueryIterPropertyTable.java            | 102 ------
 .../impl/QueryIterPropertyTableRow.java         | 217 -------------
 .../hpl/jena/propertytable/impl/RowMatch.java   |  26 --
 .../impl/StageGeneratorPropertyTable.java       |  37 ---
 .../jena/propertytable/impl/GraphCSVTest.java   |   2 +
 14 files changed, 2 insertions(+), 1602 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/20cdd495/src/main/java/com/hp/hpl/jena/propertytable/Column.java
----------------------------------------------------------------------
diff --git a/src/main/java/com/hp/hpl/jena/propertytable/Column.java 
b/src/main/java/com/hp/hpl/jena/propertytable/Column.java
deleted file mode 100644
index 7b2c6ba..0000000
--- a/src/main/java/com/hp/hpl/jena/propertytable/Column.java
+++ /dev/null
@@ -1,38 +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 com.hp.hpl.jena.propertytable;
-
-import com.hp.hpl.jena.graph.Node;
-
-/**
- * Each Column of the PropertyTable has an unique columnKey Node of the 
predicate (or p for short).
- * 
- */
-public interface Column {
-
-       /**
-        * @return the PropertyTable it belongs to
-        */
-       PropertyTable getTable();
-
-       /**
-        * @return the columnKey Node of the predicate
-        */
-       Node getColumnKey();
-
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/20cdd495/src/main/java/com/hp/hpl/jena/propertytable/PropertyTable.java
----------------------------------------------------------------------
diff --git a/src/main/java/com/hp/hpl/jena/propertytable/PropertyTable.java 
b/src/main/java/com/hp/hpl/jena/propertytable/PropertyTable.java
deleted file mode 100644
index 5d8905e..0000000
--- a/src/main/java/com/hp/hpl/jena/propertytable/PropertyTable.java
+++ /dev/null
@@ -1,109 +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 com.hp.hpl.jena.propertytable;
-
-import java.util.Collection;
-
-import com.hp.hpl.jena.graph.Node;
-import com.hp.hpl.jena.graph.Triple;
-import com.hp.hpl.jena.util.iterator.ExtendedIterator;
-
-/**
- * PropertyTable is designed to be a table of RDF terms, or Nodes in Jena. 
- * Each Column of the PropertyTable has an unique columnKey Node of the 
predicate (or p for short).
- * Each Row of the PropertyTable has an unique rowKey Node of the subject (or 
s for short).
- * You can use getColumn() to get the Column by its columnKey Node of the 
predicate, while getRow() for Row.
- * 
- */
-public interface PropertyTable {
-       
-       /**
-        * Query for ?s <p> <o>
-        * @param column, the Column with the columnKey Node of the predicate
-        * @param value, the object (or value) Node
-        * @return the ExtendedIterator of the matching Triples
-        */
-       ExtendedIterator<Triple> getTripleIterator(Column column, Node value);
-
-       /**
-        * Query for ?s <p> ?o
-        * @param column, the Column with the columnKey Node of the predicate
-        * @return the ExtendedIterator of the matching Triples
-        */
-       ExtendedIterator<Triple> getTripleIterator(Column column);
-       
-       /**
-        * Query for ?s ?p <o>
-        * @param value, the object (or value) Node
-        * @return the ExtendedIterator of the matching Triples
-        */
-       ExtendedIterator<Triple> getTripleIterator(Node value);
-       
-       /**
-        * Query for <s> ?p ?o
-        * @param row, the Row with the rowKey Node of the subject
-        * @return the ExtendedIterator of the matching Triples
-        */
-       ExtendedIterator<Triple> getTripleIterator(Row row);
-       
-       /**
-        * Query for ?s ?p ?o
-        * @return all of the Triples of the PropertyTable
-        */
-       ExtendedIterator<Triple> getTripleIterator();
-
-       /**
-        * @return all of the Columns of the PropertyTable
-        */
-       Collection<Column> getColumns();
-
-       /**
-        * Get Column by its columnKey Node of the predicate
-        * @param p, columnKey Node of the predicate
-        * @return the Column
-        */
-       Column getColumn(Node p);
-
-       /**
-        * Create a Column by its columnKey Node of the predicate
-        * @param p
-        */
-       void createColumn(Node p);
-
-       /**
-        * Get Row by its rowKey Node of the subject
-        * @param s, rowKey Node of the subject
-        * @return the Row
-        */
-       Row getRow(Node s);
-       
-       
-       /**
-        * Create Row by its rowKey Node of the subject
-        * @param s, rowKey Node of the subject
-        * @return the Row created
-        */
-       Row createRow(Node s);
-       
-       
-       /**
-        * Get all of the rows as an iterator
-        */
-       ExtendedIterator<Row> getRowIterator();
-       
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/20cdd495/src/main/java/com/hp/hpl/jena/propertytable/Row.java
----------------------------------------------------------------------
diff --git a/src/main/java/com/hp/hpl/jena/propertytable/Row.java 
b/src/main/java/com/hp/hpl/jena/propertytable/Row.java
deleted file mode 100644
index 7394f6d..0000000
--- a/src/main/java/com/hp/hpl/jena/propertytable/Row.java
+++ /dev/null
@@ -1,75 +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 com.hp.hpl.jena.propertytable;
-
-import java.util.Collection;
-
-import com.hp.hpl.jena.graph.Node;
-import com.hp.hpl.jena.graph.Triple;
-import com.hp.hpl.jena.util.iterator.ExtendedIterator;
-
-/**
- * Each Row of the PropertyTable has an unique rowKey Node of the subject (or 
s for short).
- *
- */
-public interface Row {
-
-       /**
-        * @return the PropertyTable it belongs to
-        */
-       PropertyTable getTable();
-       
-       /**
-        * Set the value of the Column in this Row
-        * @param column
-        * @param value
-        */
-       void setValue(Column column, Node value);
-       
-       /**
-        * Get the value of the Column in this Row
-        * @param column
-        * @return value
-        */
-       Node getValue(Column column);
-       
-       
-       /**
-        * Get the value of the Column in this Row
-        * @param ColumnKey
-        * @return value
-        */
-       Node getValue(Node ColumnKey);
-       
-       /**
-        * @return the rowKey Node of the subject
-        */
-       Node getRowKey();
-       
-       /**
-        * @return the Triple Iterator over the values in this Row
-        */
-       ExtendedIterator<Triple> getTripleIterator();
-       
-       /**
-        * @return all of the Columns of the PropertyTable
-        */
-       Collection<Column> getColumns();
-
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/20cdd495/src/main/java/com/hp/hpl/jena/propertytable/impl/ColumnImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/com/hp/hpl/jena/propertytable/impl/ColumnImpl.java 
b/src/main/java/com/hp/hpl/jena/propertytable/impl/ColumnImpl.java
deleted file mode 100644
index 718d9e7..0000000
--- a/src/main/java/com/hp/hpl/jena/propertytable/impl/ColumnImpl.java
+++ /dev/null
@@ -1,43 +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 com.hp.hpl.jena.propertytable.impl;
-
-import com.hp.hpl.jena.graph.Node;
-import com.hp.hpl.jena.propertytable.Column;
-import com.hp.hpl.jena.propertytable.PropertyTable;
-
-public class ColumnImpl implements Column {
-       private final PropertyTable table;
-       private Node p;
-
-       ColumnImpl(PropertyTable table, Node p) {
-               this.table = table;
-               this.p = p;
-       }
-
-       @Override
-       public PropertyTable getTable() {
-               return table;
-       }
-
-       @Override
-       public Node getColumnKey() {
-               return p;
-       }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/20cdd495/src/main/java/com/hp/hpl/jena/propertytable/impl/GraphCSV.java
----------------------------------------------------------------------
diff --git a/src/main/java/com/hp/hpl/jena/propertytable/impl/GraphCSV.java 
b/src/main/java/com/hp/hpl/jena/propertytable/impl/GraphCSV.java
deleted file mode 100644
index d8ef46f..0000000
--- a/src/main/java/com/hp/hpl/jena/propertytable/impl/GraphCSV.java
+++ /dev/null
@@ -1,53 +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 com.hp.hpl.jena.propertytable.impl;
-
-import com.hp.hpl.jena.propertytable.PropertyTable;
-
-public class GraphCSV extends GraphPropertyTable {
-       
-       public static GraphCSV createHashMapImpl( String csvFilePath ){
-               return new GraphCSVHashMapImpl(csvFilePath);
-       }
-       
-       public static GraphCSV createArrayImpl( String csvFilePath ){
-               return new GraphCSVArrayImpl(csvFilePath);
-       }
-       
-       protected GraphCSV (PropertyTable table) {
-               super(table);
-       }
-       
-       public GraphCSV ( String csvFilePath ){
-               
super(PropertyTableBuilder.buildPropetyTableArrayImplFromCsv(csvFilePath));
-       }
-}
-
-
-class GraphCSVHashMapImpl extends GraphCSV{
-       protected GraphCSVHashMapImpl(String csvFilePath){
-               
super(PropertyTableBuilder.buildPropetyTableHashMapImplFromCsv(csvFilePath));
-       }
-}
-
-class GraphCSVArrayImpl extends GraphCSV{
-       protected GraphCSVArrayImpl(String csvFilePath){
-               
super(PropertyTableBuilder.buildPropetyTableArrayImplFromCsv(csvFilePath));
-       }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/20cdd495/src/main/java/com/hp/hpl/jena/propertytable/impl/GraphPropertyTable.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/com/hp/hpl/jena/propertytable/impl/GraphPropertyTable.java 
b/src/main/java/com/hp/hpl/jena/propertytable/impl/GraphPropertyTable.java
deleted file mode 100644
index 8cc0e19..0000000
--- a/src/main/java/com/hp/hpl/jena/propertytable/impl/GraphPropertyTable.java
+++ /dev/null
@@ -1,194 +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 com.hp.hpl.jena.propertytable.impl;
-
-import java.util.ArrayList;
-import java.util.Locale;
-
-import com.hp.hpl.jena.graph.Node;
-import com.hp.hpl.jena.graph.NodeFactory;
-import com.hp.hpl.jena.graph.Triple;
-import com.hp.hpl.jena.graph.TripleMatch;
-import com.hp.hpl.jena.graph.impl.GraphBase;
-import com.hp.hpl.jena.propertytable.Column;
-import com.hp.hpl.jena.propertytable.PropertyTable;
-import com.hp.hpl.jena.propertytable.Row;
-import com.hp.hpl.jena.sparql.core.BasicPattern;
-import com.hp.hpl.jena.util.iterator.ExtendedIterator;
-import com.hp.hpl.jena.util.iterator.Filter;
-import com.hp.hpl.jena.util.iterator.NullIterator;
-import com.hp.hpl.jena.util.iterator.WrappedIterator;
-
-public class GraphPropertyTable extends GraphBase {
-
-       private PropertyTable pt;
-
-       public GraphPropertyTable(PropertyTable pt) {
-               this.pt = pt;
-       }
-
-       public PropertyTable getPropertyTable() {
-               return pt;
-       }
-
-       @Override
-       protected ExtendedIterator<Triple> graphBaseFind(TripleMatch m) {
-               //System.out.println(m);
-
-               if (this.pt == null) {
-                       return NullIterator.instance();
-               }
-
-               ExtendedIterator<Triple> iter = null;
-
-               Node s = m.getMatchSubject();
-               Node p = m.getMatchPredicate();
-               Node o = m.getMatchObject();
-
-               if (isConcrete(p) && isConcrete(o)) {
-                       //System.out.println("1");
-                       iter = pt.getTripleIterator(pt.getColumn(p), o);
-               } else if (isConcrete(p)) {
-                       //System.out.println("2");
-                       Column column = this.pt.getColumn(p);
-                       if (column != null) {
-                               iter = pt.getTripleIterator(column);
-                       } else {
-                               return NullIterator.instance();
-                       }
-               } else if (isConcrete(o)) {
-                       //System.out.println("3");
-                       iter = pt.getTripleIterator(o);
-               } else{
-                       //System.out.println("4");
-                       iter = pt.getTripleIterator();
-               }
-
-               return iter.filterKeep(new 
TripleMatchFilterEquality(m.asTriple()));
-
-       }
-       
-       protected ExtendedIterator<Row> propertyTableBaseFind(RowMatch m) {
-               
-               if (this.pt == null) {
-                       return NullIterator.instance();
-               }
-               
-               ExtendedIterator<Row> iter = null;
-
-               Node s = m.getMatchSubject();
-
-               if ( isConcrete(s) ){
-                       Row row= pt.getRow(s);
-                       if (row == null){
-                               return NullIterator.instance();
-                       } else {
-                               ArrayList<Row> rows = new ArrayList<Row>();
-                               rows.add(row);
-                               return WrappedIterator.create(rows.iterator());
-                       }
-               } else {
-                       iter = pt.getRowIterator();
-               }
-               
-               return iter.filterKeep(new RowMatchFilterEquality( m ));
-               
-       }
-       
-       static class RowMatchFilterEquality extends Filter<Row> {
-               final protected RowMatch rMatch;
-
-               public RowMatchFilterEquality(RowMatch rMatch) {
-                       this.rMatch = rMatch;
-               }
-
-               @Override
-               public boolean accept(Row r) {
-                       return rowContained(rMatch, r);
-               }
-
-       }
-       
-       static boolean rowContained(RowMatch rMatch, Row row) {
-                       
-               boolean contained = equalNode(rMatch.getSubject(), 
row.getRowKey());
-               if(contained){
-                       BasicPattern pattern =rMatch.getBasicPattern();
-                       for(Triple triple: pattern ){
-                               contained = equalNode(triple.getObject(), 
row.getValue( triple.getPredicate()) );
-                               if (! contained){
-                                       break;
-                               }
-                       }
-               } 
-               return contained;
-       }
-       
-
-       static class TripleMatchFilterEquality extends Filter<Triple> {
-               final protected Triple tMatch;
-
-               /** Creates new TripleMatchFilter */
-               public TripleMatchFilterEquality(Triple tMatch) {
-                       this.tMatch = tMatch;
-               }
-
-               @Override
-               public boolean accept(Triple t) {
-                       return tripleContained(tMatch, t);
-               }
-
-       }
-
-       static boolean tripleContained(Triple patternTriple, Triple dataTriple) 
{
-               return equalNode(patternTriple.getSubject(), 
dataTriple.getSubject())
-                               && equalNode(patternTriple.getPredicate(),
-                                               dataTriple.getPredicate())
-                               && equalNode(patternTriple.getObject(), 
dataTriple.getObject());
-       }
-
-       private static boolean equalNode(Node m, Node n) {
-               // m should not be null unless .getMatchXXXX used to get the 
node.
-               // Language tag canonicalization
-               n = fixupNode(n);
-               m = fixupNode(m);
-               return (m == null) || (m == Node.ANY) || m.equals(n);
-       }
-
-       private static Node fixupNode(Node node) {
-               if (node == null || node == Node.ANY)
-                       return node;
-
-               // RDF says ... language tags should be canonicalized to lower 
case.
-               if (node.isLiteral()) {
-                       String lang = node.getLiteralLanguage();
-                       if (lang != null && !lang.equals(""))
-                               node = 
NodeFactory.createLiteral(node.getLiteralLexicalForm(),
-                                               lang.toLowerCase(Locale.ROOT),
-                                               node.getLiteralDatatype());
-               }
-               return node;
-       }
-
-       private boolean isConcrete(Node node) {
-               boolean wild = (node == null || node == Node.ANY);
-               return !wild;
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/20cdd495/src/main/java/com/hp/hpl/jena/propertytable/impl/PropertyTableArrayImpl.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/com/hp/hpl/jena/propertytable/impl/PropertyTableArrayImpl.java 
b/src/main/java/com/hp/hpl/jena/propertytable/impl/PropertyTableArrayImpl.java
deleted file mode 100644
index 3bcc8ba..0000000
--- 
a/src/main/java/com/hp/hpl/jena/propertytable/impl/PropertyTableArrayImpl.java
+++ /dev/null
@@ -1,272 +0,0 @@
-package com.hp.hpl.jena.propertytable.impl;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.jena.atlas.iterator.Iter;
-import org.apache.jena.atlas.iterator.IteratorConcat;
-
-import com.hp.hpl.jena.graph.Node;
-import com.hp.hpl.jena.graph.Triple;
-import com.hp.hpl.jena.propertytable.Column;
-import com.hp.hpl.jena.propertytable.PropertyTable;
-import com.hp.hpl.jena.propertytable.Row;
-import com.hp.hpl.jena.util.iterator.ExtendedIterator;
-import com.hp.hpl.jena.util.iterator.WrappedIterator;
-
-public class PropertyTableArrayImpl implements PropertyTable {
-       
-       private final List<Node> rowList;
-       private final List<Node> columnList;
-
-       private final Map<Node, Integer> rowKeyToIndex;
-       private final Map<Node, Integer> columnKeyToIndex;
-       private final Node[][] array;
-       private final int rowNum;
-       private final int columnNum;
-       
-       public PropertyTableArrayImpl(int rowNum, int columnNum){
-               rowList = new ArrayList<Node>(rowNum);
-               columnList = new ArrayList<Node>(columnNum);
-               rowKeyToIndex = new HashMap<Node, Integer>();
-               columnKeyToIndex = new HashMap<Node, Integer>();
-               this.rowNum = rowNum;
-               this.columnNum = columnNum;
-               array = new Node [rowNum][columnNum];
-       }
-
-       @Override
-       public ExtendedIterator<Triple> getTripleIterator(Column column, Node 
value) {
-               if (column == null || column.getColumnKey() == null)
-                       throw new NullPointerException("column is null");
-               
-               if (value == null){
-                       throw new NullPointerException("value is null");
-               }
-               
-               ArrayList<Triple> triples = new ArrayList<Triple>();
-               
-               Node p = column.getColumnKey();
-               Integer columnIndex = this.columnKeyToIndex.get(p);
-               if (columnIndex != null){
-                       for(int rowIndex=0; rowIndex< 
rowList.size();rowIndex++){
-                               if ( value.equals( this.get(rowIndex, 
columnIndex))){
-                                       
triples.add(Triple.create(rowList.get(rowIndex), p, value));
-                               }
-                       }
-               }
-               return WrappedIterator.create(triples.iterator());
-       }
-
-       @Override
-       public ExtendedIterator<Triple> getTripleIterator(Column column) {
-               
-               if (column == null || column.getColumnKey() == null)
-                       throw new NullPointerException("column is null");
-               
-               ArrayList<Triple> triples = new ArrayList<Triple>();
-               
-               Node p = column.getColumnKey();
-               Integer columnIndex = this.columnKeyToIndex.get(p);
-               if (columnIndex != null){
-                       for(int rowIndex=0; rowIndex< 
rowList.size();rowIndex++){
-                               
triples.add(Triple.create(rowList.get(rowIndex), p, this.get(rowIndex, 
columnIndex)));
-                       }
-               }
-               return WrappedIterator.create(triples.iterator());
-       }
-
-       @Override
-       public ExtendedIterator<Triple> getTripleIterator(Node value) {
-               if (value == null)
-                       throw new NullPointerException("value is null");
-               
-               IteratorConcat<Triple> iter = new IteratorConcat<Triple>();
-               for (Column column : this.getColumns()) {
-                       ExtendedIterator<Triple> eIter = 
getTripleIterator(column,value);
-                       iter.add(eIter);
-               }
-               return WrappedIterator.create(Iter.distinct(iter));
-       }
-
-       @Override
-       public ExtendedIterator<Triple> getTripleIterator(Row row) {
-               if (row == null || row.getRowKey() == null)
-                       throw new NullPointerException("row is null");
-               
-               ArrayList<Triple> triples = new ArrayList<Triple>();
-           Integer rowIndex = this.rowKeyToIndex.get(row.getRowKey());
-
-               if (rowIndex != null){
-                       for(int columnIndex=0; columnIndex < columnList.size(); 
columnIndex++){
-                               triples.add(Triple.create( row.getRowKey(), 
columnList.get(columnIndex), this.get(rowIndex, columnIndex)));
-                       }
-               }
-               return WrappedIterator.create(triples.iterator());
-       }
-
-       @Override
-       public ExtendedIterator<Triple> getTripleIterator() {
-
-               IteratorConcat<Triple> iter = new IteratorConcat<Triple>();
-               for (Column column : getColumns()) {
-                       iter.add(getTripleIterator(column));
-               }
-               return WrappedIterator.create(Iter.distinct(iter));
-       }
-
-       @Override
-       public Collection<Column> getColumns() {
-               Collection<Column> columns = new ArrayList<Column>();
-               for(Node p: columnKeyToIndex.keySet() ){
-                       columns.add(new ColumnImpl(this, p));
-               }
-               return columns;
-       }
-
-       @Override
-       public Column getColumn(Node p) {
-               if (p == null)
-                       throw new NullPointerException("column name is null");
-           Integer columnIndex = columnKeyToIndex.get(p);
-           return (columnIndex == null)
-               ? null : new ColumnImpl(this, p);
-       }
-
-       @Override
-       public void createColumn(Node p) {
-               if (p == null)
-                       throw new NullPointerException("column name is null");
-
-               if (columnKeyToIndex.containsKey(p))
-                       throw new IllegalArgumentException("column already 
exists: '"
-                                       + p.toString());
-               
-               if (columnList.size()>= columnNum)
-                       throw new IllegalArgumentException("cannot create new 
column for max column count: " + columnNum);
-               
-               columnList.add(p);
-               columnKeyToIndex.put(p, columnList.indexOf(p));
-       }
-
-       @Override
-       public Row getRow(Node s) {
-               if (s == null)
-                       throw new NullPointerException("subject node is null");
-               
-               Integer rowIndex = rowKeyToIndex.get(s);
-               return (rowIndex == null) ? null : new InternalRow(rowIndex);
-       }
-
-       @Override
-       public Row createRow(Node s) {
-               Row row = this.getRow(s);
-               if (row != null)
-                       return row;
-
-               if (rowList.size()>= rowNum)
-                       throw new IllegalArgumentException("cannot create new 
row for max row count: " + rowNum);
-               
-               rowList.add(s);
-               int rowIndex = rowList.indexOf(s);
-               rowKeyToIndex.put(s, rowIndex);         
-               
-               return new InternalRow(rowIndex);
-       }
-       
-       private void set(int rowIndex, int columnIndex, Node value) {
-               
-               if (rowIndex >= rowList.size())
-                       throw new IllegalArgumentException("row index out of 
bound: " + rowList.size());
-               if (columnIndex >= columnList.size())
-                       throw new IllegalArgumentException("column index out of 
bound: " + columnList.size());
-               array[rowIndex][columnIndex] = value;
-       }
-       
-       public Node get(int rowIndex, int columnIndex) {
-           if (rowIndex >= rowList.size())
-                       throw new IllegalArgumentException("row index out of 
bound: " + rowList.size());
-               if (columnIndex >= columnList.size())
-                       throw new IllegalArgumentException("column index out of 
bound: " + columnList.size());
-               return array[rowIndex][columnIndex];
-    }
-
-       @Override
-       public ExtendedIterator<Row> getRowIterator() {
-               ArrayList<Row> rows = new ArrayList<Row>();
-               for (int rowIndex=0;rowIndex<rowList.size();rowIndex++){
-                       rows.add( new InternalRow(rowIndex));
-               }
-               return WrappedIterator.create(rows.iterator());
-       }
-       
-       private final class InternalRow implements Row {
-
-           final int rowIndex;
-
-           InternalRow(int rowIndex) {
-             this.rowIndex = rowIndex;
-           }
-               
-               @Override
-               public PropertyTable getTable() {
-                       return PropertyTableArrayImpl.this;
-               }
-
-               @Override
-               public void setValue(Column column, Node value) {
-                       if (column == null || column.getColumnKey() == null)
-                               throw new NullPointerException("column is 
null");
-                       
-                   Integer columnIndex = 
columnKeyToIndex.get(column.getColumnKey());
-                   if (columnIndex == null)
-                       throw new IllegalArgumentException("column index does 
not exist: " + column.getColumnKey());
-
-                   set(rowIndex, columnIndex, value);
-                       
-               }
-
-               @Override
-               public Node getValue(Column column) {
-                       if (column == null)
-                               throw new NullPointerException("column is 
null");
-                       return this.getValue(column.getColumnKey());
-               }
-
-               @Override
-               public Node getValue(Node columnKey) {
-                       if (columnKey == null)
-                               throw new NullPointerException("column key is 
null");
-                       
-                   Integer columnIndex = columnKeyToIndex.get(columnKey);
-                   if (columnIndex == null)
-                       throw new IllegalArgumentException("column index does 
not exist: " + columnKey);
-                   
-                   return get(rowIndex, columnIndex);
-               }
-
-               @Override
-               public Node getRowKey() {
-                       return rowList.get(rowIndex);
-               }
-
-               @Override
-               public ExtendedIterator<Triple> getTripleIterator() {
-                       ArrayList<Triple> triples = new ArrayList<Triple>();
-                       for (int 
columnIndex=0;columnIndex<columnList.size();columnIndex++) {
-                               triples.add(Triple.create(getRowKey(), 
columnList.get(columnIndex), get(rowIndex, columnIndex)));
-                       }
-                       return WrappedIterator.create(triples.iterator());
-               }
-
-               @Override
-               public Collection<Column> getColumns() {
-                       return PropertyTableArrayImpl.this.getColumns();
-               }
-               
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/20cdd495/src/main/java/com/hp/hpl/jena/propertytable/impl/PropertyTableBuilder.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/com/hp/hpl/jena/propertytable/impl/PropertyTableBuilder.java 
b/src/main/java/com/hp/hpl/jena/propertytable/impl/PropertyTableBuilder.java
deleted file mode 100644
index 3dacf14..0000000
--- a/src/main/java/com/hp/hpl/jena/propertytable/impl/PropertyTableBuilder.java
+++ /dev/null
@@ -1,113 +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 com.hp.hpl.jena.propertytable.impl;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.jena.atlas.csv.CSVParser;
-import org.apache.jena.riot.lang.LangCSV;
-import org.apache.jena.riot.system.IRIResolver;
-
-import com.hp.hpl.jena.datatypes.xsd.XSDDatatype;
-import com.hp.hpl.jena.graph.Node;
-import com.hp.hpl.jena.graph.NodeFactory;
-import com.hp.hpl.jena.propertytable.PropertyTable;
-import com.hp.hpl.jena.propertytable.Row;
-
-public class PropertyTableBuilder {
-
-       public static Node CSV_ROW_NODE = 
NodeFactory.createURI(LangCSV.CSV_ROW);
-       
-       public static PropertyTable buildPropetyTableHashMapImplFromCsv(String 
csvFilePath) {           
-               PropertyTable table = new PropertyTableHashMapImpl();
-               return fillPropertyTable(table, csvFilePath);
-       }
-       
-       public static PropertyTable buildPropetyTableArrayImplFromCsv(String 
csvFilePath) {
-               PropertyTable table = 
createEmptyPropertyTableArrayImpl(csvFilePath);
-               return fillPropertyTable(table, csvFilePath);
-       }
-       
-       private static PropertyTable createEmptyPropertyTableArrayImpl (String 
csvFilePath) {
-               CSVParser parser = CSVParser.create(csvFilePath);
-               List<String> rowLine = null;
-               int rowNum = 0;
-               int columnNum = 0;
-               
-               while ((rowLine = parser.parse1()) != null) {
-                       if (rowNum == 0) {
-                               columnNum = rowLine.size();
-                       }
-                       rowNum++;
-               }
-               if (rowNum!=0 && columnNum!=0){
-                       return new PropertyTableArrayImpl(rowNum, columnNum+1);
-               } else {
-                       return null;
-               }
-       }
-
-       
-       private static PropertyTable fillPropertyTable(PropertyTable table, 
String csvFilePath ){
-               if (table == null){
-                       return null;
-               }
-               CSVParser parser = CSVParser.create(csvFilePath);
-               List<String> rowLine = null;
-               ArrayList<Node> predicates = new ArrayList<Node>();
-               int rowNum = 0;
-
-               while ((rowLine = parser.parse1()) != null) {
-                       if (rowNum == 0) {
-                               table.createColumn(CSV_ROW_NODE);
-                               for (String column : rowLine) {
-                                       String uri = 
IRIResolver.resolveString(csvFilePath) + "#"
-                                                       + 
LangCSV.toSafeLocalname(column);
-                                       Node p = NodeFactory.createURI(uri);
-                                       predicates.add(p);
-                                       table.createColumn(p);
-                               }
-                       } else {
-                               Node subject = LangCSV.caculateSubject(rowNum, 
csvFilePath);
-                               Row row = table.createRow(subject);
-                               
-                               row.setValue(table.getColumn(CSV_ROW_NODE), 
NodeFactory.createLiteral(
-                                               (rowNum + ""), 
XSDDatatype.XSDinteger));
-
-                               for (int col = 0; col < rowLine.size(); col++) {
-
-                                       String columnValue = 
rowLine.get(col).trim();
-                                       Node o;
-                                       try {
-                                               // Try for a double.
-                                               double d = 
Double.parseDouble(columnValue);
-                                               o = 
NodeFactory.createLiteral(columnValue,
-                                                               
XSDDatatype.XSDdouble);
-                                       } catch (Exception e) {
-                                               o = 
NodeFactory.createLiteral(columnValue);
-                                       }
-                                       
row.setValue(table.getColumn(predicates.get(col)), o);
-                               }
-                       }
-                       rowNum++;
-               }
-               return table;
-       }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/20cdd495/src/main/java/com/hp/hpl/jena/propertytable/impl/PropertyTableHashMapImpl.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/com/hp/hpl/jena/propertytable/impl/PropertyTableHashMapImpl.java
 
b/src/main/java/com/hp/hpl/jena/propertytable/impl/PropertyTableHashMapImpl.java
deleted file mode 100644
index 9ad261c..0000000
--- 
a/src/main/java/com/hp/hpl/jena/propertytable/impl/PropertyTableHashMapImpl.java
+++ /dev/null
@@ -1,323 +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 com.hp.hpl.jena.propertytable.impl;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import org.apache.jena.atlas.iterator.Iter;
-import org.apache.jena.atlas.iterator.IteratorConcat;
-
-import com.google.common.collect.HashMultimap;
-import com.google.common.collect.SetMultimap;
-import com.hp.hpl.jena.graph.Node;
-import com.hp.hpl.jena.graph.Triple;
-import com.hp.hpl.jena.propertytable.Column;
-import com.hp.hpl.jena.propertytable.PropertyTable;
-import com.hp.hpl.jena.propertytable.Row;
-import com.hp.hpl.jena.util.iterator.ExtendedIterator;
-import com.hp.hpl.jena.util.iterator.WrappedIterator;
-
-/**
- * A PropertyTable Implementation using HashMap.
- * It contains PSO and POS indexes.
- * 
- */
-public class PropertyTableHashMapImpl implements PropertyTable {
-
-       private Map<Node, Column> columnIndex; // Maps property Node key to 
Column
-       private List<Column> columnList; // Stores the list of columns in the 
table
-       private Map<Node, Row> rowIndex; // Maps the subject Node key to Row.
-       private List<Row> rowList; // Stores the list of rows in the table
-
-       // PSO index
-       private Map<Node, Map<Node, Node>> valueIndex; // Maps column Node to
-                                                                               
                        // (subject Node, value)
-                                                                               
                        // pairs
-       // POS index
-       private Map<Node, SetMultimap<Node, Node>> valueReverseIndex; // Maps 
column
-                                                                               
                                                        // Node to
-                                                                               
                                                        // (value,
-                                                                               
                                                        // subject
-                                                                               
                                                        // Node)
-                                                                               
                                                        // pairs
-
-       PropertyTableHashMapImpl() {
-               columnIndex = new HashMap<Node, Column>();
-               columnList = new ArrayList<Column>();
-               rowIndex = new HashMap<Node, Row>();
-               rowList = new ArrayList<Row>();
-               valueIndex = new HashMap<Node, Map<Node, Node>>();
-               valueReverseIndex = new HashMap<Node, SetMultimap<Node, 
Node>>();
-       }
-
-       @Override
-       public ExtendedIterator<Triple> getTripleIterator() {
-               
-               // use PSO index to scan all the table (slow)
-               IteratorConcat<Triple> iter = new IteratorConcat<Triple>();
-               for (Column column : getColumns()) {
-                       iter.add(getTripleIterator(column));
-               }
-               return WrappedIterator.create(Iter.distinct(iter));
-       }
-
-       @Override
-       public ExtendedIterator<Triple> getTripleIterator(Column column) {
-               
-               // use PSO index directly (fast)
-               
-               if (column == null || column.getColumnKey() == null)
-                       throw new NullPointerException("column is null");
-               
-               ArrayList<Triple> triples = new ArrayList<Triple>();
-               Map<Node, Node> values = valueIndex.get(column.getColumnKey());
-
-               for (Entry<Node, Node> entry : values.entrySet()) {
-                       Node subject = entry.getKey();
-                       Node value = entry.getValue();
-                       triples.add(Triple.create(subject, 
column.getColumnKey(), value));
-               }
-               return WrappedIterator.create(triples.iterator());
-       }
-
-       @Override
-       public ExtendedIterator<Triple> getTripleIterator(Node value) {
-               
-               // use POS index ( O(n), n= column count )
-               
-               if (value == null)
-                       throw new NullPointerException("value is null");
-               
-               IteratorConcat<Triple> iter = new IteratorConcat<Triple>();
-               for (Column column : this.getColumns()) {
-                       ExtendedIterator<Triple> eIter = 
getTripleIterator(column,value);
-                       iter.add(eIter);
-               }
-               return WrappedIterator.create(Iter.distinct(iter));
-       }
-
-       @Override
-       public ExtendedIterator<Triple> getTripleIterator(Column column, Node 
value) {
-               
-               // use POS index directly (fast)
-               
-               if (column == null || column.getColumnKey() == null)
-                       throw new NullPointerException("column is null");
-               
-               if (value == null)
-                       throw new NullPointerException("value is null");
-               
-               
-               Node p = column.getColumnKey();
-               final SetMultimap<Node, Node> valueToSubjectMap = 
valueReverseIndex
-                               .get(p);
-               final Set<Node> subjects = valueToSubjectMap.get(value);
-               ArrayList<Triple> triples = new ArrayList<Triple>();
-               for (Node subject : subjects) {
-                       triples.add(Triple.create(subject, p, value));
-               }
-               return WrappedIterator.create(triples.iterator());
-       }
-
-
-       @Override
-       public ExtendedIterator<Triple> getTripleIterator(Row row) {
-               // use PSO index ( O(n), n= column count )
-               
-               if (row == null || row.getRowKey() == null)
-                       throw new NullPointerException("row is null");
-               
-               ArrayList<Triple> triples = new ArrayList<Triple>();
-               for (Column column : getColumns()) {
-                       Node value = row.getValue(column);
-                       triples.add(Triple.create(row.getRowKey(), 
column.getColumnKey(), value));
-               }
-               return WrappedIterator.create(triples.iterator());
-       }
-
-       @Override
-       public Collection<Column> getColumns() {
-               return columnList;
-       }
-
-       @Override
-       public Column getColumn(Node p) {
-               if (p == null)
-                       throw new NullPointerException("column node is null");
-               return columnIndex.get(p);
-       }
-
-       @Override
-       public void createColumn(Node p) {
-               if (p == null)
-                       throw new NullPointerException("column node is null");
-
-               if (columnIndex.containsKey(p))
-                       throw new IllegalArgumentException("column already 
exists: '"
-                                       + p.toString());
-
-               columnIndex.put(p, new ColumnImpl(this, p));
-               columnList.add(columnIndex.get(p));
-               valueIndex.put(p, new HashMap<Node, Node>());
-               valueReverseIndex.put(p, HashMultimap.<Node, Node> create());
-       }
-
-       @Override
-       public Row getRow(final Node s) {
-               if (s == null)
-                       throw new NullPointerException("subject node is null");
-               Row row = rowIndex.get(s);
-               return row;
-
-       }
-       
-       @Override
-       public Row createRow(final Node s){
-               Row row = this.getRow(s);
-               if (row != null)
-                       return row;
-
-               row = new InternalRow(s);
-               rowIndex.put(s, row);
-               rowList.add(row);
-
-               return row;
-       }
-       
-       @Override
-       public ExtendedIterator<Row> getRowIterator() {
-               return WrappedIterator.create(rowList.iterator());
-       }
-
-       private final void setX(final Node s, final Node p, final Node value) {
-               if (p == null)
-                       throw new NullPointerException("column Node must not be 
null.");
-               if (value == null)
-                       throw new NullPointerException("value must not be 
null.");
-
-               Map<Node, Node> subjectToValueMap = valueIndex.get(p);
-               if (!columnIndex.containsKey(p) || subjectToValueMap == null)
-                       throw new IllegalArgumentException("column: '" + p
-                                       + "' does not yet exist.");
-
-               Node oldValue = subjectToValueMap.get(s);
-               subjectToValueMap.put(s, value);
-               addToReverseMap(p, s, oldValue, value);
-       }
-
-       private void addToReverseMap(final Node p, final Node s,
-                       final Node oldValue, final Node value) {
-
-               final SetMultimap<Node, Node> valueToSubjectMap = 
valueReverseIndex
-                               .get(p);
-               valueToSubjectMap.remove(oldValue, s);
-               valueToSubjectMap.put(value, s);
-       }
-
-       private void unSetX(final Node s, final Node p) {
-
-               final Map<Node, Node> subjectToValueMap = valueIndex.get(p);
-               if (!columnIndex.containsKey(p) || subjectToValueMap == null)
-                       throw new IllegalArgumentException("column: '" + p
-                                       + "' does not yet exist.");
-
-               final Node value = subjectToValueMap.get(s);
-               if (value == null)
-                       return;
-
-               subjectToValueMap.remove(s);
-               removeFromReverseMap(p, s, value);
-       }
-
-       private void removeFromReverseMap(final Node p, final Node s,
-                       final Node value) {
-               final SetMultimap<Node, Node> valueTokeysMap = 
valueReverseIndex.get(p);
-               valueTokeysMap.remove(s, value);
-       }
-
-       private Node getX(final Node s, final Node p) {
-               final Map<Node, Node> subjectToValueMap = valueIndex.get(p);
-               if (!columnIndex.containsKey(p) || subjectToValueMap == null)
-                       throw new IllegalArgumentException("column: '" + p
-                                       + "' does not yet exist.");
-               return subjectToValueMap.get(s);
-       }
-
-       private final class InternalRow implements Row {
-               private final Node key;
-
-               InternalRow(final Node key) {
-                       this.key = key;
-               }
-
-               @Override
-               public void setValue(Column column, Node value) {
-                       if (value == null)
-                               unSetX(key, column.getColumnKey());
-                       else
-                               setX(key, column.getColumnKey(), value);
-               }
-
-               @Override
-               public Node getValue(Column column) {
-                       return getX(key, column.getColumnKey());
-               }
-               
-               @Override
-               public Node getValue(Node columnKey) {
-                       return getX(key, columnKey);
-               }
-
-               @Override
-               public PropertyTable getTable() {
-                       return PropertyTableHashMapImpl.this;
-               }
-
-               @Override
-               public Node getRowKey() {
-                       return key;
-               }
-
-               @Override
-               public Collection<Column> getColumns() {
-                       // TODO Auto-generated method stub
-                       return PropertyTableHashMapImpl.this.getColumns();
-               }
-
-               @Override
-               public ExtendedIterator<Triple> getTripleIterator() {
-                       ArrayList<Triple> triples = new ArrayList<Triple>();
-                       for (Column column : getColumns()) {
-                               Node value = this.getValue(column);
-                               triples.add(Triple.create(key, 
column.getColumnKey(), value));
-                       }
-                       return WrappedIterator.create(triples.iterator());
-               }
-
-       }
-
-
-
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/20cdd495/src/main/java/com/hp/hpl/jena/propertytable/impl/QueryIterPropertyTable.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/com/hp/hpl/jena/propertytable/impl/QueryIterPropertyTable.java 
b/src/main/java/com/hp/hpl/jena/propertytable/impl/QueryIterPropertyTable.java
deleted file mode 100644
index c096361..0000000
--- 
a/src/main/java/com/hp/hpl/jena/propertytable/impl/QueryIterPropertyTable.java
+++ /dev/null
@@ -1,102 +0,0 @@
-package com.hp.hpl.jena.propertytable.impl;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-
-import org.apache.jena.atlas.io.IndentedWriter;
-
-import com.hp.hpl.jena.graph.Graph;
-import com.hp.hpl.jena.graph.Node;
-import com.hp.hpl.jena.graph.Triple;
-import com.hp.hpl.jena.sparql.core.BasicPattern;
-import com.hp.hpl.jena.sparql.engine.ExecutionContext;
-import com.hp.hpl.jena.sparql.engine.QueryIterator;
-import com.hp.hpl.jena.sparql.engine.binding.Binding;
-import com.hp.hpl.jena.sparql.engine.iterator.QueryIter1;
-import com.hp.hpl.jena.sparql.serializer.SerializationContext;
-import com.hp.hpl.jena.sparql.util.FmtUtils;
-import com.hp.hpl.jena.sparql.util.Utils;
-
-public class QueryIterPropertyTable extends QueryIter1
-       {
-           private BasicPattern pattern ;
-           private Graph graph ;
-           private QueryIterator output ;
-           
-           public static QueryIterator create(QueryIterator input,
-                                              BasicPattern pattern , 
-                                              ExecutionContext execContext)
-           {
-               return new QueryIterPropertyTable(input, pattern, execContext) ;
-           }
-           
-           private QueryIterPropertyTable(QueryIterator input,
-                                           BasicPattern pattern , 
-                                           ExecutionContext execContext)
-           {
-               super(input, execContext) ;
-               this.pattern = pattern ;
-               graph = execContext.getActiveGraph() ;
-               // Create a chain of triple iterators.
-               QueryIterator chain = getInput() ;
-               Collection<BasicPattern> patterns = sort(pattern);
-               for (BasicPattern p : patterns)
-                   chain = new QueryIterPropertyTableRow(chain, p, 
execContext) ;
-               output = chain ;
-           }
-           
-           private Collection<BasicPattern> sort(BasicPattern pattern){
-               HashMap<Node, BasicPattern> map= new HashMap<Node, 
BasicPattern>();
-               for(Triple triple: pattern.getList()){
-                       Node subject = triple.getSubject();
-                       if(! map.containsKey(subject)){
-                               List<Triple> triples = new ArrayList<Triple>();
-                               BasicPattern p = BasicPattern.wrap(triples);
-                               map.put(subject, p);
-                               p.add(triple);
-                       }else {
-                               map.get(subject).add(triple);
-                       }
-               }
-               return map.values();
-           }
-
-           @Override
-           protected boolean hasNextBinding()
-           {
-               return output.hasNext() ;
-           }
-
-           @Override
-           protected Binding moveToNextBinding()
-           {
-               return output.nextBinding() ;
-           }
-
-           @Override
-           protected void closeSubIterator()
-           {
-               if ( output != null )
-                   output.close() ;
-               output = null ;
-           }
-           
-           @Override
-           protected void requestSubCancel()
-           {
-               if ( output != null )
-                   output.cancel();
-           }
-
-           @Override
-           protected void details(IndentedWriter out, SerializationContext 
sCxt)
-           {
-               out.print(Utils.className(this)) ;
-               out.println() ;
-               out.incIndent() ;
-               FmtUtils.formatPattern(out, pattern, sCxt) ;
-               out.decIndent() ;
-           }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/20cdd495/src/main/java/com/hp/hpl/jena/propertytable/impl/QueryIterPropertyTableRow.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/com/hp/hpl/jena/propertytable/impl/QueryIterPropertyTableRow.java
 
b/src/main/java/com/hp/hpl/jena/propertytable/impl/QueryIterPropertyTableRow.java
deleted file mode 100644
index 1aa4572..0000000
--- 
a/src/main/java/com/hp/hpl/jena/propertytable/impl/QueryIterPropertyTableRow.java
+++ /dev/null
@@ -1,217 +0,0 @@
-package com.hp.hpl.jena.propertytable.impl;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import com.hp.hpl.jena.graph.Node;
-import com.hp.hpl.jena.graph.Triple;
-import com.hp.hpl.jena.propertytable.PropertyTable;
-import com.hp.hpl.jena.propertytable.Row;
-import com.hp.hpl.jena.sparql.ARQInternalErrorException;
-import com.hp.hpl.jena.sparql.core.BasicPattern;
-import com.hp.hpl.jena.sparql.core.Var;
-import com.hp.hpl.jena.sparql.engine.ExecutionContext;
-import com.hp.hpl.jena.sparql.engine.QueryIterator;
-import com.hp.hpl.jena.sparql.engine.binding.Binding;
-import com.hp.hpl.jena.sparql.engine.binding.BindingFactory;
-import com.hp.hpl.jena.sparql.engine.binding.BindingMap;
-import com.hp.hpl.jena.sparql.engine.iterator.QueryIter;
-import com.hp.hpl.jena.sparql.engine.iterator.QueryIterRepeatApply;
-import com.hp.hpl.jena.util.iterator.ClosableIterator;
-import com.hp.hpl.jena.util.iterator.ExtendedIterator;
-import com.hp.hpl.jena.util.iterator.NiceIterator;
-import com.hp.hpl.jena.util.iterator.WrappedIterator;
-
-public class QueryIterPropertyTableRow  extends QueryIterRepeatApply{
-    private final BasicPattern pattern ;
-    
-    public QueryIterPropertyTableRow( QueryIterator input,
-                                   BasicPattern pattern , 
-                                   ExecutionContext cxt)
-    {
-        super(input, cxt) ;
-        this.pattern = pattern ;
-    }
-
-    @Override
-    protected QueryIterator nextStage(Binding binding)
-    {
-        return new RowMapper(binding, pattern, getExecContext()) ;
-    }
-    
-    static int countMapper = 0 ; 
-    static class RowMapper extends QueryIter
-    {   
-       private PropertyTable table;
-       
-       private BasicPattern pattern;
-        private Binding binding ;
-        private ClosableIterator<Row> graphIter ;
-        private Binding slot = null ;
-        private boolean finished = false ;
-        private volatile boolean cancelled = false ;
-
-        RowMapper(Binding binding, BasicPattern pattern, ExecutionContext cxt)
-        {
-            super(cxt) ;
-            GraphPropertyTable graph = 
(GraphPropertyTable)cxt.getActiveGraph() ;
-            
-            this.pattern = substitute(pattern, binding);
-            this.binding = binding ;
-            BasicPattern pattern2 = tripleNode(pattern);
-            
-            ExtendedIterator<Row> iter = graph.propertyTableBaseFind( new 
RowMatch( pattern2) );
-            
-            if ( false )
-            {
-                // Materialize the results now. Debugging only.
-                List<Row> x = iter.toList() ;
-                this.graphIter = WrappedIterator.create(x.iterator()) ;
-                iter.close();
-            }
-            else
-                // Stream.
-                this.graphIter = iter ;
-        }
-
-        private static Node tripleNode(Node node)
-        {
-            if ( node.isVariable() )
-                return Node.ANY ;
-            return node ;
-        }
-        
-        private static BasicPattern tripleNode(BasicPattern pattern)
-        {
-               List<Triple> triples = new ArrayList<Triple>();
-               for (Triple triple: pattern){
-                       triples.add( tripleNode(triple) );
-               }
-               return BasicPattern.wrap(triples);
-        }
-        
-        private static Triple tripleNode(Triple triple){
-            Node s = tripleNode(triple.getSubject()) ;
-            Node p = tripleNode(triple.getPredicate()) ;
-            Node o = tripleNode(triple.getObject()) ;
-            return Triple.create(s, p, o);
-        }
-
-        private static Node substitute(Node node, Binding binding)
-        {
-            if ( Var.isVar(node) )
-            {
-                Node x = binding.get(Var.alloc(node)) ;
-                if ( x != null )
-                    return x ;
-            }
-            return node ;
-        }
-        
-        private static Triple substitute(Triple triple, Binding binding){
-            Node s = substitute(triple.getSubject(), binding) ;
-            Node p = substitute(triple.getPredicate(), binding) ;
-            Node o = substitute(triple.getObject(), binding) ;
-            return Triple.create(s, p, o);
-        }
-        
-        private static BasicPattern substitute(BasicPattern pattern , Binding 
binding)
-        {
-               List<Triple> triples = new ArrayList<Triple>();
-               for (Triple triple: pattern){
-                       triples.add( substitute(triple,binding) );
-               }
-               return BasicPattern.wrap(triples);
-        }
-        
-        private Binding mapper(Row r)
-        {
-            BindingMap results = BindingFactory.create(binding) ;
-
-            if ( ! insert(pattern, r, results) )
-                return null ; 
-            return results ;
-        }
-        
-        private static boolean insert(BasicPattern input, Row output, 
BindingMap results)
-        {      
-               for (Triple triple: input){
-                       if (! insert(triple, output, results) ){
-                               return false;
-                       }
-               }
-               return true;
-        }
-        
-        private static boolean insert(Triple input, Row output, BindingMap 
results){
-               if ( ! insert(input.getSubject(), output.getRowKey(), results) )
-                return false ;
-//             if ( ! insert(input.getPredicate(), output.get, results) )
-//                return false ;
-            if ( ! insert(input.getObject(), output.getValue( 
input.getPredicate() ), results) )
-                return false ;
-            return true;
-        }
-
-        private static boolean insert(Node inputNode, Node outputNode, 
BindingMap results)
-        {
-            if ( ! Var.isVar(inputNode) )
-                return true ;
-            
-            Var v = Var.alloc(inputNode) ;
-            Node x = results.get(v) ;
-            if ( x != null )
-                return outputNode.equals(x) ;
-            
-            results.add(v, outputNode) ;
-            return true ;
-        }
-        
-        @Override
-        protected boolean hasNextBinding()
-        {
-            if ( finished ) return false ;
-            if ( slot != null ) return true ;
-            if ( cancelled )
-            {
-                graphIter.close() ;
-                finished = true ;
-                return false ;
-            }
-
-            while(graphIter.hasNext() && slot == null )
-            {
-                Row r = graphIter.next() ;
-                slot = mapper(r) ;
-            }
-            if ( slot == null )
-                finished = true ;
-            return slot != null ;
-        }
-
-        @Override
-        protected Binding moveToNextBinding()
-        {
-            if ( ! hasNextBinding() ) 
-                throw new ARQInternalErrorException() ;
-            Binding r = slot ;
-            slot = null ;
-            return r ;
-        }
-
-        @Override
-        protected void closeIterator()
-        {
-            if ( graphIter != null )
-                NiceIterator.close(graphIter) ;
-            graphIter = null ;
-        }
-        
-        @Override
-        protected void requestCancel()
-        {
-            // The QueryIteratorBase machinary will do the real work.
-            cancelled = true ;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/20cdd495/src/main/java/com/hp/hpl/jena/propertytable/impl/RowMatch.java
----------------------------------------------------------------------
diff --git a/src/main/java/com/hp/hpl/jena/propertytable/impl/RowMatch.java 
b/src/main/java/com/hp/hpl/jena/propertytable/impl/RowMatch.java
deleted file mode 100644
index ba221ef..0000000
--- a/src/main/java/com/hp/hpl/jena/propertytable/impl/RowMatch.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.hp.hpl.jena.propertytable.impl;
-
-import com.hp.hpl.jena.graph.Node;
-import com.hp.hpl.jena.sparql.core.BasicPattern;
-
-public class RowMatch {
-       
-       private BasicPattern pattern;
-       
-       public RowMatch( BasicPattern pattern ){                
-               this.pattern=pattern;
-       }
-
-       public Node getMatchSubject(){
-               return pattern.get(0).getMatchSubject();
-       }
-       
-       public Node getSubject(){
-               return pattern.get(0).getSubject();
-       }
-       
-       public BasicPattern getBasicPattern(){
-               return pattern;
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/20cdd495/src/main/java/com/hp/hpl/jena/propertytable/impl/StageGeneratorPropertyTable.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/com/hp/hpl/jena/propertytable/impl/StageGeneratorPropertyTable.java
 
b/src/main/java/com/hp/hpl/jena/propertytable/impl/StageGeneratorPropertyTable.java
deleted file mode 100644
index f7db0f9..0000000
--- 
a/src/main/java/com/hp/hpl/jena/propertytable/impl/StageGeneratorPropertyTable.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.hp.hpl.jena.propertytable.impl;
-
-import com.hp.hpl.jena.graph.Graph;
-import com.hp.hpl.jena.sparql.core.BasicPattern;
-import com.hp.hpl.jena.sparql.engine.ExecutionContext;
-import com.hp.hpl.jena.sparql.engine.QueryIterator;
-import com.hp.hpl.jena.sparql.engine.main.StageGenerator;
-
-public class StageGeneratorPropertyTable implements StageGenerator {
-
-    // Using OpExecutor is preferred.
-    StageGenerator above = null ;
-    
-    public StageGeneratorPropertyTable(StageGenerator original)
-    {
-        above = original ;
-    }
-    
-    @Override
-    public QueryIterator execute(BasicPattern pattern, QueryIterator input, 
ExecutionContext execCxt)
-    {
-        // --- In case this isn't for GraphPropertyTable
-        Graph g = execCxt.getActiveGraph() ;
-        
-        if ( ! ( g instanceof GraphPropertyTable ) )
-            // Not us - bounce up the StageGenerator chain
-            return above.execute(pattern, input, execCxt) ;
-        if (pattern.size() <= 1){
-               System.out.println( "<=1 "+ pattern);
-               return above.execute(pattern, input, execCxt) ;
-        }
-        System.out.println( ">1" + pattern);
-        return QueryIterPropertyTable.create(input, pattern, execCxt);
-    }
-    
-
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/20cdd495/src/test/java/com/hp/hpl/jena/propertytable/impl/GraphCSVTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/com/hp/hpl/jena/propertytable/impl/GraphCSVTest.java 
b/src/test/java/com/hp/hpl/jena/propertytable/impl/GraphCSVTest.java
index 3145a19..01b0564 100644
--- a/src/test/java/com/hp/hpl/jena/propertytable/impl/GraphCSVTest.java
+++ b/src/test/java/com/hp/hpl/jena/propertytable/impl/GraphCSVTest.java
@@ -17,6 +17,8 @@ package com.hp.hpl.jena.propertytable.impl;
  * limitations under the License.
  */
 
+import org.apache.jena.propertytable.impl.GraphCSV;
+import org.apache.jena.propertytable.impl.StageGeneratorPropertyTable;
 import org.junit.Assert;
 import org.junit.Ignore;
 import org.junit.Test;

Reply via email to