@Override
 public List<TagDefinition> getTagDefinitions(
     final Collection<UUID> tagDefinitionIds, final TenantContext context)
     throws TagDefinitionApiException {
   return tagDefinitionDao.getByIds(
       tagDefinitionIds, internalCallContextFactory.createInternalTenantContext(context));
 }
 @Override
 public TagDefinition getTagDefinitionForName(
     final String tagDefinitionName, final TenantContext context)
     throws TagDefinitionApiException {
   return tagDefinitionDao.getByName(
       tagDefinitionName, internalCallContextFactory.createInternalTenantContext(context));
 }
  @Override
  public List<AuditLog> getAuditLogs(
      final UUID objectId,
      final ObjectType objectType,
      final AuditLevel auditLevel,
      final TenantContext context) {
    // Optimization - bail early
    if (AuditLevel.NONE.equals(auditLevel)) {
      return ImmutableList.<AuditLog>of();
    }

    final TableName tableName = getTableNameFromObjectType(objectType);
    if (tableName == null) {
      return ImmutableList.<AuditLog>of();
    }

    return auditDao.getAuditLogsForId(
        tableName,
        objectId,
        auditLevel,
        internalCallContextFactory.createInternalTenantContext(context));
  }
 @Override
 public TagDefinition getTagDefinition(final UUID tagDefinitionId, final TenantContext context)
     throws TagDefinitionApiException {
   return tagDefinitionDao.getById(
       tagDefinitionId, internalCallContextFactory.createInternalTenantContext(context));
 }
 @Override
 public List<TagDefinition> getTagDefinitions(final TenantContext context) {
   return tagDefinitionDao.getTagDefinitions(
       internalCallContextFactory.createInternalTenantContext(context));
 }
 @Override
 public Map<String, Tag> getTags(
     final UUID objectId, final ObjectType objectType, final TenantContext context) {
   return tagDao.loadEntities(
       objectId, objectType, internalCallContextFactory.createInternalTenantContext(context));
 }