[
https://issues.apache.org/jira/browse/COMMONSRDF-47?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15615760#comment-15615760
]
ASF GitHub Bot commented on COMMONSRDF-47:
------------------------------------------
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
----
> RDFSyntax should be interface, not enum
> ---------------------------------------
>
> Key: COMMONSRDF-47
> URL: https://issues.apache.org/jira/browse/COMMONSRDF-47
> Project: Apache Commons RDF
> Issue Type: Bug
> Components: api
> Affects Versions: 0.2.0
> Reporter: Stian Soiland-Reyes
> Assignee: Stian Soiland-Reyes
>
> [~p_ansell] raises in [pull request
> 25|https://github.com/apache/incubator-commonsrdf/pull/25#discussion_r85231845]
> {quote}
> Using enum for RDFSyntax is a bad idea unless it overrides an interface and
> the interface is used in method signatures instead of the enum. There are
> many other RDFSyntaxes, and enum (without implementing an interface) is only
> suited to cases where the full set are known a priori.
> {quote}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)