package uk.ac.ebi.fg.myequivalents.rdf.java2rdf.mapping; import static uk.ac.ebi.fg.java2rdf.utils.Java2RdfUtils.urlEncode; import static uk.ac.ebi.fg.java2rdf.utils.NamespaceUtils.uri; import java.util.Map; import uk.ac.ebi.fg.java2rdf.mapping.BeanRdfMapper; import uk.ac.ebi.fg.java2rdf.mapping.properties.OwlDatatypePropRdfMapper; import uk.ac.ebi.fg.java2rdf.mapping.urigen.RdfUriGenerator; import uk.ac.ebi.fg.myequivalents.model.Describeable; /** * TODO: comment me! * * @author brandizi * <dl><dt>Date:</dt><dd>17 Feb 2016</dd></dl> * */ public abstract class DescribeableRdfMapper<D extends Describeable> extends BeanRdfMapper<D> { public DescribeableRdfMapper ( String owlClassName, final String rdfNamePrefix ) { super ( uri ( "myeq", owlClassName ), new RdfUriGenerator<D>() { @Override public String getUri ( D d, Map<String, Object> params ) { return uri ( "myeqres", rdfNamePrefix + "_" + urlEncode ( d.getName () ) ); } } ); this.addPropertyMapper ( "name", new OwlDatatypePropRdfMapper<D, String> ( uri ( "dc-terms", "identifier" ) ) ); this.addPropertyMapper ( "title", new OwlDatatypePropRdfMapper<D, String> ( uri ( "dc-terms", "title" ) ) ); this.addPropertyMapper ( "description", new OwlDatatypePropRdfMapper<D, String> ( uri ( "dc-terms", "description" ) ) ); this.addPropertyMapper ( "releaseDate", new OwlDatatypePropRdfMapper<D, String> ( uri ( "dc-terms", "issued" ) ) ); } @Override public boolean map ( D d, Map<String, Object> params ) { if ( d == null || !d.isPublic () ) return false; return super.map ( d, params ); } }