Hi,

For names, I like CamelCaseEvenForAcronyms, like IbmXmlSaxParser instead of
IBMXMLSAXParser.

Gary

On Mon, Sep 12, 2016 at 5:32 PM, Stian Soiland-Reyes <[email protected]>
wrote:

> [[ I've copied both lists, prefer replies to [email protected] ]]
>
> What style should we use for packages and class names for the Commons
> RDF Term implementations?
>
>
> To give an example:
>
> http://stain.github.io/incubator-commonsrdf/integration/org/apache/
> commons/rdf/api/IRI.html
>
> (org.apache.commons.rdf.api.* is pretty-much locked down and agreed by
> the incubator project - but I'm thinking of what to call the
> implementations here now)
>
>
> That is the Commons RDF API interface:
>
> org.apache.commons.rdf.api.IRI
>
>
> is extended by "marker" interfaces per implementation:
>
> org.apache.commons.rdf.jena.JenaIRI
> org.apache.commons.rdf.jsonldjava.JsonLdIRI
> org.apache.commons.rdf.rdf4j.RDF4JIRI
>
> (adds methods like asJenaNode() to reveal the underlying 'native'
> implementations)
>
>
> and the corresponding implementations which actually wrap the
> underlying library's classes:
>
> org.apache.commons.rdf.simple.IRIImpl
> org.apache.commons.rdf.jena.impl.IRIImpl
> org.apache.commons.rdf.rdf4j.impl.IRIImpl
> org.apache.commons.rdf.jsonldjava.JsonLdIRI.JsonLdIRIImpl
>
>
>
>
> for Graph there are quite a few more implementations:
>
> org.apache.commons.rdf.simple.GraphImpl
> org.apache.commons.rdf.simple.DatasetGraphView
> org.apache.commons.rdf.jsonldjava.JsonLdGraph
> org.apache.commons.rdf.jsonldjava.JsonLdUnionGraph
> org.apache.commons.rdf.rdf4j.impl.ModelGraphImpl
> org.apache.commons.rdf.rdf4j.impl.RepositoryGraphImpl
> org.apache.commons.rdf.jena.impl.GraphImpl
>
>
> but I only made marker interfaces:
>
> org.apache.commons.rdf.jena.JenaGraph
> org.apache.commons.rdf.rdf4j.RDF4JGraph
>
>
>
> Questions:
>
> a) Should we keep the marker interfaces for RDFTerms (e.g.
> jena.JenaIRI) or just have the implementations directly (e.g. as in
> simple.IRIImpl)
>
> a2)  Should simple also have a marker interface?  (..they don't have
> anything 'inner' to expose)
>
>
> b) Should we have marker interfaces for the Graph/Dataset
> implementations? Here getting access to the underlying model is
> probably more important.
>
>
> c) What style for the implementation class name? E.g. should they all
> have the same name like "IRIImpl" (perhaps confusing if you have more
> than one module on classpath), or better with prefix, e.g.
> "JsonLdIRIImpl"?
>
> d) Where should the implementation live?  sub-package like
> org.apache.commons.rdf.jena.impl, or same package as marker interfaces
>  -- or as inner class of the marker interface?
>
> (I know - the last sounds nasty - but it's actually quite tidy if we
> decide to not make the implementation package-protected, particularly
> as most of these marker interfaces are pretty empty :
>
> https://github.com/apache/incubator-commonsrdf/blob/
> jsonld-java/jsonld-java/src/main/java/org/apache/commons/
> rdf/jsonldjava/JsonLdQuad.java
> )
>
>
> e)  How visible should the implementations be, package or public classes?
>
> f) package or public constructors?  They should mostly be possible to
> create through the corresponding RDFTermFactory - and 'package' would
> mean we could update it in a minor or patch version.
>
> g) - if implementation classes are public - should the implementations
> be marked 'final'?
>
> h) how do we construct a package-protected class from the factory
> (which is not in .impl)? Jena adds a impl.JenaFactory for this purpose
> - but it seems to duplicate most of JenaRDFTermFactory.
>
> https://github.com/apache/incubator-commonsrdf/blob/
> jena/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaFactory.java
> https://github.com/apache/incubator-commonsrdf/blob/
> jena/jena/src/main/java/org/apache/commons/rdf/jena/
> JenaRDFTermFactory.java
>
>
>
>
> Thanks for any suggestions!
>
>
>
> --
> Stian Soiland-Reyes
> http://orcid.org/0000-0001-9842-9718
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>


-- 
E-Mail: [email protected] | [email protected]
Java Persistence with Hibernate, Second Edition
<http://www.manning.com/bauer3/>
JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
Spring Batch in Action <http://www.manning.com/templier/>
Blog: http://garygregory.wordpress.com
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory

Reply via email to