1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.core.rest.cxf.service;
20
21 import java.net.URI;
22 import java.util.List;
23 import javax.ws.rs.core.Response;
24 import org.apache.syncope.common.lib.to.SchemaTO;
25 import org.apache.syncope.common.lib.types.SchemaType;
26 import org.apache.syncope.common.rest.api.RESTHeaders;
27 import org.apache.syncope.common.rest.api.beans.SchemaQuery;
28 import org.apache.syncope.common.rest.api.service.SchemaService;
29 import org.apache.syncope.core.logic.SchemaLogic;
30 import org.springframework.stereotype.Service;
31
32 @Service
33 public class SchemaServiceImpl extends AbstractService implements SchemaService {
34
35 protected final SchemaLogic logic;
36
37 public SchemaServiceImpl(final SchemaLogic logic) {
38 this.logic = logic;
39 }
40
41 @Override
42 public Response create(final SchemaType schemaType, final SchemaTO schemaTO) {
43 SchemaTO created = logic.create(schemaType, schemaTO);
44
45 URI location = uriInfo.getAbsolutePathBuilder().path(created.getKey()).build();
46 return Response.created(location).
47 header(RESTHeaders.RESOURCE_KEY, created.getKey()).
48 build();
49 }
50
51 @Override
52 public void delete(final SchemaType schemaType, final String key) {
53 logic.delete(schemaType, key);
54 }
55
56 @Override
57 public <T extends SchemaTO> List<T> search(final SchemaQuery query) {
58 String keyword = query.getKeyword() == null ? null : query.getKeyword().replace('*', '%');
59 return logic.search(query.getType(), query.getAnyTypeClasses(), keyword);
60 }
61
62 @Override
63 public <T extends SchemaTO> T read(final SchemaType schemaType, final String key) {
64 return logic.read(schemaType, key);
65 }
66
67 @Override
68 public void update(final SchemaType schemaType, final SchemaTO schemaTO) {
69 logic.update(schemaType, schemaTO);
70 }
71 }