class CoreTokenResource implements CollectionResourceProvider {

    public Promise<ResourceResponse, ResourceException> deleteInstance(Context serverContext, String tokenId,
            DeleteRequest deleteRequest) {

        String principal = PrincipalRestUtils.getPrincipalNameFromServerContext(serverContext);

        try {
            store.deleteAsync(tokenId);

            Map<String, String> result = new HashMap<String, String>();
            result.put(TOKEN_ID, tokenId);

            ResourceResponse resource = newResourceResponse(
                    tokenId,
                    String.valueOf(currentTimeMillis()),
                    new JsonValue(result));

            debug("DELETE by {0}: Deleted token resource with ID: {1}", principal, tokenId);
            return newResultPromise(resource);
        } catch (CoreTokenException e) {
            error(e, "DELETE by {0}: Error deleting token resource with ID: {1}", principal, tokenId);
            return generateException(e).asPromise();
        }
    }

    public  CoreTokenResource(JSONSerialisation serialisation, CTSPersistentStore store, Debug debug);

}