dnet-core/dnet-data-services/src/main/java/eu/dnetlib/data/objectstore/modular/ObjectStoreProfileCreator.java

128 lines
3.3 KiB
Java

package eu.dnetlib.data.objectstore.modular;
import eu.dnetlib.enabling.is.registry.rmi.ISRegistryException;
import eu.dnetlib.enabling.is.registry.rmi.ISRegistryService;
import eu.dnetlib.enabling.locators.UniqueServiceLocator;
import eu.dnetlib.soap.EndpointReferenceBuilder;
import org.antlr.stringtemplate.StringTemplate;
import org.springframework.beans.factory.annotation.Required;
import javax.xml.ws.Endpoint;
// TODO: Auto-generated Javadoc
/**
* The Class ObjectStoreProfileCreator is responsible of creating profile of the ObjectStore
*/
public class ObjectStoreProfileCreator {
/**
* service locator.
*/
private UniqueServiceLocator serviceLocator;
/**
* objectstore ds template.
*/
private StringTemplate objectstoreDsTemplate;
/**
* service endpoint.
*/
private Endpoint endpoint;
/**
* endpoint builder.
*/
private EndpointReferenceBuilder<Endpoint> eprBuilder;
/**
* Register profile.
*
* @param interpretation the interpretation
* @return the string
* @throws ISRegistryException the IS registry exception
*/
public String registerProfile(final String interpretation)
throws ISRegistryException {
// XXX: mini hack
StringTemplate template = new StringTemplate(
objectstoreDsTemplate.getTemplate());
template.setAttribute("serviceUri", eprBuilder.getAddress(endpoint));
template.setAttribute("interpretation", interpretation);
return serviceLocator.getService(ISRegistryService.class, true).registerProfile(template.toString());
}
public void deleteProfile(final String profileId) throws ISRegistryException {
serviceLocator.getService(ISRegistryService.class).deleteProfile(profileId);
}
/**
* Gets the endpoint.
*
* @return the endpoint
*/
public Endpoint getEndpoint() {
return endpoint;
}
/**
* Sets the endpoint.
*
* @param endpoint the new endpoint
*/
@Required
public void setEndpoint(final Endpoint endpoint) {
this.endpoint = endpoint;
}
/**
* Gets the epr builder.
*
* @return the epr builder
*/
public EndpointReferenceBuilder<Endpoint> getEprBuilder() {
return eprBuilder;
}
/**
* Sets the epr builder.
*
* @param eprBuilder the new epr builder
*/
@Required
public void setEprBuilder(final EndpointReferenceBuilder<Endpoint> eprBuilder) {
this.eprBuilder = eprBuilder;
}
/**
* Gets the objectstore ds template.
*
* @return the objectstore ds template
*/
public StringTemplate getObjectstoreDsTemplate() {
return objectstoreDsTemplate;
}
/**
* Sets the objectstore ds template.
*
* @param objectstoreDsTemplate the new objectstore ds template
*/
@Required
public void setObjectstoreDsTemplate(final StringTemplate objectstoreDsTemplate) {
this.objectstoreDsTemplate = objectstoreDsTemplate;
}
public UniqueServiceLocator getServiceLocator() {
return serviceLocator;
}
@Required
public void setServiceLocator(final UniqueServiceLocator serviceLocator) {
this.serviceLocator = serviceLocator;
}
}