package org.sharegov.cirm.rest;
import java.util.HashSet;
import java.util.Set;
import javax.ws.rs.core.Application;
import org.semanticweb.owlapi.model.OWLNamedIndividual;
import org.sharegov.cirm.OWL;
public class MainRestApplication extends Application
{
private ClassLoader loader = null;
private Set<String> classNames = new HashSet<String>();
public MainRestApplication() { }
public MainRestApplication(ClassLoader loader) { this.loader = loader; }
public void configure(OWLNamedIndividual app)
{
for (OWLNamedIndividual I : OWL.objectProperties(app, "hasImplementation"))
classNames.add(I.getIRI().getFragment());
}
@Override
public Set<Class<?>> getClasses()
{
try
{
Set<Class<?>> S = new HashSet<Class<?>>();
for (String name : classNames) {
Class<?> clazz = null;
try {
if (loader == null) {
clazz = Class.forName(name);
} else {
clazz = loader.loadClass(name);
}
S.add(clazz);
} catch(ClassNotFoundException e) {
System.err.println("MainRestApplicaton failed to find class : " + name + " on classpath. Continuing.");
}
}
return S;
}
catch (Exception ex)
{
throw new RuntimeException(ex);
}
}
}