org.dspace.authority.AuthorityServiceImpl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of dspace-api Show documentation
Show all versions of dspace-api Show documentation
DSpace core data model and service APIs.
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.authority;
import java.sql.SQLException;
import java.util.List;
import org.dspace.authority.indexer.AuthorityIndexerInterface;
import org.dspace.authority.indexer.AuthorityIndexingService;
import org.dspace.authority.service.AuthorityService;
import org.dspace.authorize.AuthorizeException;
import org.dspace.content.Item;
import org.dspace.core.Context;
import org.springframework.beans.factory.annotation.Autowired;
/**
* Service implementation for the Metadata Authority
* This class is responsible for all business logic calls for the Metadata Authority and is autowired by spring
* This class should never be accessed directly.
*
* @author kevinvandevelde at atmire.com
*/
public class AuthorityServiceImpl implements AuthorityService {
@Autowired(required = true)
protected AuthorityIndexingService indexingService;
@Autowired(required = true)
protected List indexers;
protected AuthorityServiceImpl() {
}
@Override
public void indexItem(Context context, Item item) throws SQLException, AuthorizeException {
if (!isConfigurationValid()) {
//Cannot index, configuration not valid
return;
}
for (AuthorityIndexerInterface indexerInterface : indexers) {
List authorityValues = indexerInterface.getAuthorityValues(context , item);
for (AuthorityValue authorityValue : authorityValues) {
indexingService.indexContent(authorityValue);
}
}
//Commit to our server
indexingService.commit();
}
@Override
public boolean isConfigurationValid() {
if (!indexingService.isConfiguredProperly()) {
return false;
}
for (AuthorityIndexerInterface indexerInterface : indexers) {
if (!indexerInterface.isConfiguredProperly()) {
return false;
}
}
return true;
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy