@Override @Transactional public List<Content> getAllContents() { List<Content> contents = new ArrayList<>(); contents.addAll(streamContentService.retrieveAll()); contents.addAll(stringContentService.retrieveAll()); return contents; }
@Override @Transactional public StreamContent getStreamContent(String language, String name) throws ContentNotFoundException { StreamContent streamContent = streamContentService.findByLanguageAndName(language, name); if (streamContent == null) { throw new ContentNotFoundException(); } streamContent.setContent(retrieveStreamContentData(streamContent)); return streamContent; }
@Override @Transactional public void addContent(Content content) { if (content == null || content.getLanguage() == null || content.getName() == null) { throw new IllegalArgumentException("Content or language or name should not be null"); } if (content instanceof StreamContent) { streamContentService.createOrUpdate((StreamContent) content); } else if (content instanceof StringContent) { stringContentService.createOrUpdate((StringContent) content); } }
@Override @Transactional public boolean isStreamContentAvailable(String language, String name) { StreamContent streamContent = streamContentService.findByLanguageAndName(language, name); return streamContent != null; }
@Override @Transactional public StreamContent getStreamContent(long streamContentId) { return streamContentService.findById(streamContentId); }
@Override @Transactional public void removeStreamContent(String language, String name) throws ContentNotFoundException { streamContentService.delete(getStreamContent(language, name)); }
@Override @Transactional public Byte[] retrieveStreamContentData(StreamContent instance) { return (Byte[]) streamContentService.getDetachedField(instance, "content"); }