[ 
https://issues.apache.org/jira/browse/JENA-1083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15089000#comment-15089000
 ] 

ASF GitHub Bot commented on JENA-1083:
--------------------------------------

Github user afs commented on a diff in the pull request:

    https://github.com/apache/jena/pull/120#discussion_r49173681
  
    --- Diff: 
jena-arq/src/main/java/org/apache/jena/sparql/core/mem/PMapQuadTable.java ---
    @@ -37,13 +39,29 @@
      * use.
      *
      */
    -public abstract class PMapQuadTable extends PMapTupleTable<FourTupleMap, 
Quad>implements QuadTable {
    +public class PMapQuadTable extends PMapTupleTable<FourTupleMap, Quad, 
Consumer4<Node>>implements QuadTable {
    +
    +
    +    private static class QuadTupleMap extends TupleMap {
    +
    +        private QuadTupleMap(final String mappedOrder) {
    +            super(mappedOrder, compileMapping("GSPO", mappedOrder));
    +        }
    +    }
    +
    --- End diff --
    
    I don't see the point of this class (ditto`TripleTupleMap`).
    
    `QuadTupleMap` is passed to the constructor `PMapTupleTable` as a 
`TupleMap`.  A static function will do the same for the `PMapTupleTable` 
constructor.
    ```
    private static Tuplemap makeTupleMap(String mappedOrder)
    { return TupleMap.create("GSPO", mappedOrder) ; }
    ```
    and 
    ```
     public PMapQuadTable(final String order) {
          this(order, makeTupleMap(order));
      }
    ```
    More of a style point but I would make the code general and not hard-code 
GSPO into the index code.  Instead pass in a a pair when the index is made.  
with calls like """make index("GSPO", "SPOG")""".  Then changes to idnexing are 
all in one place.


> MInor refactoring in TupleTables
> --------------------------------
>
>                 Key: JENA-1083
>                 URL: https://issues.apache.org/jira/browse/JENA-1083
>             Project: Apache Jena
>          Issue Type: Improvement
>          Components: ARQ
>            Reporter: A. Soroka
>            Priority: Minor
>
> There are some minor refactorings available for TupleTable and its subtypes, 
> particularly PMapTripleTable and PMapQuadTable that will clarify their use. 
> Specifically, current impls of those abstract types have to override several 
> methods for adding, removing, and finding tuples. In fact, the only 
> information being added when those methods are overridden is conversion 
> between canonical and internal tuple ordering. This refactoring is to provide 
> methods that do that conversion and nothing else, which will make two methods 
> the most that any implementation of those abstract classes will have to 
> provide.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to