@Override
 public Set<IServiceId<?>> getAvailableServices() {
   final Set<IServiceId<?>> result = new HashSet<IServiceId<?>>();
   for (final IServiceId<?> id : original.getAvailableServices()) {
     if (get(id) != null) {
       result.add(id);
     }
   }
   return result;
 }
 @SuppressWarnings("unchecked")
 @Override
 public <SERVICE_TYPE> SERVICE_TYPE get(final IServiceId<SERVICE_TYPE> id) {
   final SERVICE_TYPE originalService = original.get(id);
   if (originalService instanceof IEntityService && filterUnreadableLinkDescriptors) {
     return getDecoratedService(
         id, (SERVICE_TYPE) new DecoratedEntityService((IEntityService) originalService));
   } else if (originalService != null) {
     return getDecoratedService(id, originalService);
   } else {
     return null;
   }
 }