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.properties.OwlObjPropRdfMapper;
import uk.ac.ebi.fg.java2rdf.mapping.urigen.RdfUriGenerator;
import uk.ac.ebi.fg.java2rdf.utils.NamespaceUtils;
import uk.ac.ebi.fg.myequivalents.model.Entity;
import uk.ac.ebi.fg.myequivalents.model.Service;
/**
* TODO: comment me!
*
* @author brandizi
* <dl><dt>Date:</dt><dd>17 Feb 2016</dd></dl>
*
*/
public class EntityRdfMapper extends BeanRdfMapper<Entity>
{
public EntityRdfMapper ()
{
super (
uri ( "myeq", "Entity" ),
new RdfUriGenerator<Entity> ()
{
@Override
public String getUri ( Entity e, Map<String, Object> params )
{
if ( e == null ) return null;
String uri = e.getURI ();
if ( uri == null ) uri = NamespaceUtils.uri (
"myeqres", "entity_" + urlEncode ( e.getServiceName () ) + ':' + urlEncode ( e.getAccession () )
);
return uri;
}
}
);
this.addPropertyMapper ( "accession", new OwlDatatypePropRdfMapper<Entity, String> ( uri ( "dc-terms", "identifier" ) ) );
this.addPropertyMapper ( "releaseDate", new OwlDatatypePropRdfMapper<Entity, String> ( uri ( "dc-terms", "issued" ) ) );
this.addPropertyMapper ( "service", new OwlObjPropRdfMapper<Entity, Service> ( uri ( "myeq", "has-service" ) ) );
}
@Override
public boolean map ( Entity e, Map<String, Object> params )
{
if ( e == null || !e.isPublic () ) return false;
return super.map ( e, params );
}
}