GitHub user stain opened a pull request:

    https://github.com/apache/incubator-commonsrdf/pull/27

    COMMONSRDF-47 RDFSyntax as an interface

    [COMMONSRDF-47](https://issues.apache.org/jira/browse/COMMONSRDF-47)
    
    RDFSyntax  as an interface, with OfficialRDFSyntax is the enum - which 
implements the interface
    
    basically .mediaType -> .mediaType() etc
    
    One problem is that you can't override `.equals()` on an enum - and 
presumably it might be useful to compare if two RDFSyntaxes are the same? 
    
    Do we need to add our own `.equals()` and `.hashCode()` contract here as 
well (using `mediaType()`)  and get rid of the enum?
    
    we will also have to tweak the japicmp config as it (rightfully) complains 
about `RDFSyntax` changing its signature since 0.2.0, e.g. 
    
    ```
    ***! MODIFIED INTERFACE (<- ENUM) : PUBLIC ABSTRACT (<- NON_ABSTRACT) 
NON_FINAL (<- FINAL) org.apache.commons.rdf.api.RDFSyntax  (class type modified)
            ---* REMOVED INTERFACE: java.lang.Comparable
            ---* REMOVED INTERFACE: java.io.Serializable
            ***! MODIFIED SUPERCLASS: java.lang.Object (<- java.lang.Enum)
            ***! MODIFIED FIELD: PUBLIC STATIC FINAL 
org.apache.commons.rdf.api.RDFSyntax$OfficialRDFSyntax (<- 
org.apache.commons.rdf.api.RDFSyntax) RDFA_XHTML
            ***! MODIFIED FIELD: PUBLIC STATIC FINAL 
org.apache.commons.rdf.api.RDFSyntax$OfficialRDFSyntax (<- 
org.apache.commons.rdf.api.RDFSyntax) NQUADS
            ***! MODIFIED FIELD: PUBLIC STATIC FINAL 
org.apache.commons.rdf.api.RDFSyntax$OfficialRDFSyntax (<- 
org.apache.commons.rdf.api.RDFSyntax) RDFA_HTML
            ---! REMOVED FIELD: PUBLIC(-) FINAL(-) java.lang.String mediaType
            ---! REMOVED FIELD: PUBLIC(-) FINAL(-) boolean supportsDataset
            ***! MODIFIED FIELD: PUBLIC STATIC FINAL 
org.apache.commons.rdf.api.RDFSyntax$OfficialRDFSyntax (<- 
org.apache.commons.rdf.api.RDFSyntax) RDFXML
            ---! REMOVED FIELD: PUBLIC(-) FINAL(-) java.lang.String 
fileExtension
            ***! MODIFIED FIELD: PUBLIC STATIC FINAL 
org.apache.commons.rdf.api.RDFSyntax$OfficialRDFSyntax (<- 
org.apache.commons.rdf.api.RDFSyntax) TURTLE
            ***! MODIFIED FIELD: PUBLIC STATIC FINAL 
org.apache.commons.rdf.api.RDFSyntax$OfficialRDFSyntax (<- 
org.apache.commons.rdf.api.RDFSyntax) NTRIPLES
            ***! MODIFIED FIELD: PUBLIC STATIC FINAL 
org.apache.commons.rdf.api.RDFSyntax$OfficialRDFSyntax (<- 
org.apache.commons.rdf.api.RDFSyntax) TRIG
            ***! MODIFIED FIELD: PUBLIC STATIC FINAL 
org.apache.commons.rdf.api.RDFSyntax$OfficialRDFSyntax (<- 
org.apache.commons.rdf.api.RDFSyntax) JSONLD
            +++* NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.String 
fileExtension()
            +++* NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.String mediaType()
            +++* NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.String name()
            +++* NEW METHOD: PUBLIC(+) ABSTRACT(+) boolean supportsDataset()
            +++* NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.String title()
            ---  REMOVED METHOD: PUBLIC(-) java.lang.String toString()
            ---! REMOVED METHOD: PUBLIC(-) STATIC(-) 
org.apache.commons.rdf.api.RDFSyntax valueOf(java.lang.String)
            ---! REMOVED METHOD: PUBLIC(-) STATIC(-) 
org.apache.commons.rdf.api.RDFSyntax[] values()
    ```
    
    My suggestion is to delay this till past 0.3.0, as we're not settling 
`RDFParser` now anyway.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/apache/incubator-commonsrdf COMMONSRDF-47

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/incubator-commonsrdf/pull/27.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #27
    
----
commit ee725a5aaf5d94c9ab5ff7f355bb5d0cb370bfa7
Author: Stian Soiland-Reyes <[email protected]>
Date:   2016-10-28T15:34:49Z

    COMMONSRDF-47 RDFSyntax as an interface
    
    OfficialRDFSyntax is the enum - which implements the interface
    
    basically .mediaType -> .mediaType() etc

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to