/** * 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.app.rest.repository; import java.sql.SQLException; import java.util.List; import org.dspace.app.rest.converter.MetadataSchemaConverter; import org.dspace.app.rest.model.MetadataSchemaRest; import org.dspace.app.rest.model.hateoas.MetadataSchemaResource; import org.dspace.content.MetadataSchema; import org.dspace.content.factory.ContentServiceFactory; import org.dspace.content.service.MetadataSchemaService; import org.dspace.core.Context; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Component; /** * This is the repository responsible to manage MetadataSchema Rest object * * @author Andrea Bollini (andrea.bollini at 4science.it) * */ @Component(MetadataSchemaRest.NAME) public class MetadataSchemaRestRepository extends DSpaceRestRepository<MetadataSchemaRest, Integer> { MetadataSchemaService metaScemaService = ContentServiceFactory.getInstance().getMetadataSchemaService(); @Autowired MetadataSchemaConverter converter; public MetadataSchemaRestRepository() { } @Override public MetadataSchemaRest findOne(Context context, Integer id) { MetadataSchema metadataSchema = null; try { metadataSchema = metaScemaService.find(context, id); } catch (SQLException e) { throw new RuntimeException(e.getMessage(), e); } if (metadataSchema == null) { return null; } return converter.fromModel(metadataSchema); } @Override public Page<MetadataSchemaRest> findAll(Context context, Pageable pageable) { List<MetadataSchema> metadataSchema = null; try { metadataSchema = metaScemaService.findAll(context); } catch (SQLException e) { throw new RuntimeException(e.getMessage(), e); } Page<MetadataSchemaRest> page = utils.getPage(metadataSchema, pageable).map(converter); return page; } @Override public Class<MetadataSchemaRest> getDomainClass() { return MetadataSchemaRest.class; } @Override public MetadataSchemaResource wrapResource(MetadataSchemaRest bs, String... rels) { return new MetadataSchemaResource(bs, utils, rels); } }