Source:
<code>boolean insertResources(URI namedGraphUri, final Object... resources) throws StoreAccessException; void deleteResources(URI namedGraphUri, final URI... nodeUris); void deleteResources(URI namedGraphUri, final AbstractResource... resources); boolean namedGraphExists(URI namedGraphUri); boolean resourceExists(URI namedGraphUri, URI resourceUri); Model getJenaModelForSubject(URI namedGraphUri, URI subject) throws NoSuchElementException, StoreAccessException, ModelUnmarshallingException; <START> <T extends AbstractResource> List<T> getResources(URI namedGraphUri, final Class<T> clazz) <END> throws StoreAccessException, ModelUnmarshallingException; <T extends AbstractResource> List<T> getResources(URI namedGraphUri, Class<T> clazz, int limit, int offset) throws StoreAccessException, ModelUnmarshallingException; <T extends AbstractResource> T getResource(URI namedGraphUri, URI uri, Class<T> clazz) throws NoSuchElementException, StoreAccessException, ModelUnmarshallingException; <T extends AbstractResource> boolean updateResources(URI namedGraphUri, final T... resources) throws StoreAccessException; <T extends AbstractResource> boolean putResources(URI namedGraphUri, final Collection<T> resources) throws StoreAccessException; <T extends AbstractResource> boolean appendResources(URI namedGraphUri, final Collection<T> resources) throws StoreAccessException; default <T extends AbstractResource> boolean appendResource(URI namedGraphUri, final T resource) throws StoreAccessException { return appendResources(namedGraphUri, Collections.singletonList(resource)); }</code><technical_language>this extending interface instead of abstract class in order minimize coupling</technical_language>

Target:
boolean insertResources(URI namedGraphUri, final Object... resources) throws StoreAccessException; void deleteResources(URI namedGraphUri, final URI... nodeUris); void deleteResources(URI namedGraphUri, final IResource... resources); boolean namedGraphExists(URI namedGraphUri); boolean resourceExists(URI namedGraphUri, URI resourceUri); Model getJenaModelForSubject(URI namedGraphUri, URI subject) throws NoSuchElementException, StoreAccessException, ModelUnmarshallingException; <T extends IResource> List<T> getResources(URI namedGraphUri, final Class<T> clazz) throws StoreAccessException, ModelUnmarshallingException; <T extends IResource> List<T> getResources(URI namedGraphUri, Class<T> clazz, int limit, int offset) throws StoreAccessException, ModelUnmarshallingException; <T extends IResource> T getResource(URI namedGraphUri, URI uri, Class<T> clazz) throws NoSuchElementException, StoreAccessException, ModelUnmarshallingException; <T extends IResource> boolean updateResources(URI namedGraphUri, final T... resources) throws StoreAccessException; <T extends IResource> boolean putResources(URI namedGraphUri, final Collection<T> resources) throws StoreAccessException; <T extends IResource> boolean appendResources(URI namedGraphUri, final Collection<T> resources) throws StoreAccessException; default <T extends IResource> boolean appendResource(URI namedGraphUri, final T resource) throws StoreAccessException { return appendResources(namedGraphUri, Collections.singletonList(resource)); }