@PreAuthorize("isAuthenticated()") @SuppressWarnings("unchecked") public <T extends SchemaTO> T read(final SchemaType schemaType, final String schemaKey) { T read; switch (schemaType) { case VIRTUAL: read = (T) binder.getVirSchemaTO(schemaKey); break; case DERIVED: read = (T) binder.getDerSchemaTO(schemaKey); break; case PLAIN: default: read = (T) binder.getPlainSchemaTO(schemaKey); } return read; }
@PreAuthorize("hasRole('" + StandardEntitlement.SCHEMA_CREATE + "')") @SuppressWarnings("unchecked") public <T extends SchemaTO> T create(final SchemaType schemaType, final T schemaTO) { if (StringUtils.isBlank(schemaTO.getKey())) { SyncopeClientException sce = SyncopeClientException.build(ClientExceptionType.RequiredValuesMissing); sce.getElements().add("Schema key"); throw sce; } if (doesSchemaExist(schemaType, schemaTO.getKey())) { throw new DuplicateException(schemaType + "/" + schemaTO.getKey()); } T created; switch (schemaType) { case VIRTUAL: VirSchema virSchema = virSchemaDAO.save(binder.create((VirSchemaTO) schemaTO)); created = (T) binder.getVirSchemaTO(virSchema.getKey()); break; case DERIVED: DerSchema derSchema = derSchemaDAO.save(binder.create((DerSchemaTO) schemaTO)); created = (T) binder.getDerSchemaTO(derSchema.getKey()); break; case PLAIN: default: PlainSchema plainSchema = plainSchemaDAO.save(binder.create((PlainSchemaTO) schemaTO)); created = (T) binder.getPlainSchemaTO(plainSchema.getKey()); } return created; }
@PreAuthorize("hasRole('" + StandardEntitlement.SCHEMA_UPDATE + "')") public <T extends SchemaTO> void update(final SchemaType schemaType, final T schemaTO) { if (!doesSchemaExist(schemaType, schemaTO.getKey())) { throw new NotFoundException(schemaType + "/" + schemaTO.getKey()); } switch (schemaType) { case VIRTUAL: VirSchema virSchema = virSchemaDAO.find(schemaTO.getKey()); if (virSchema == null) { throw new NotFoundException("Virtual Schema '" + schemaTO.getKey() + "'"); } virSchemaDAO.save(binder.update((VirSchemaTO) schemaTO, virSchema)); break; case DERIVED: DerSchema derSchema = derSchemaDAO.find(schemaTO.getKey()); if (derSchema == null) { throw new NotFoundException("Derived schema '" + schemaTO.getKey() + "'"); } derSchemaDAO.save(binder.update((DerSchemaTO) schemaTO, derSchema)); break; case PLAIN: default: PlainSchema plainSchema = plainSchemaDAO.find(schemaTO.getKey()); if (plainSchema == null) { throw new NotFoundException("Schema '" + schemaTO.getKey() + "'"); } plainSchemaDAO.save(binder.update((PlainSchemaTO) schemaTO, plainSchema)); } }
: virSchemaDAO.findByKeyword(keyword) : virSchemaDAO.findByAnyTypeClasses(classes)).stream(). map(schema -> (T) binder.getVirSchemaTO(schema.getKey())).collect(Collectors.toList()); break; : derSchemaDAO.findByKeyword(keyword) : derSchemaDAO.findByAnyTypeClasses(classes)).stream(). map(schema -> (T) binder.getDerSchemaTO(schema.getKey())).collect(Collectors.toList()); break; : plainSchemaDAO.findByKeyword(keyword) : plainSchemaDAO.findByAnyTypeClasses(classes)).stream(). map(schema -> (T) binder.getPlainSchemaTO(schema.getKey())).collect(Collectors.toList());
VirSchema virSchema = virSchemaDAO.find(key); if (virSchema != null) { result = binder.getVirSchemaTO(key); result = binder.getDerSchemaTO(key); result = binder.getPlainSchemaTO(key);