code: public String getServiceStateClassName(final Object serviceState) throws CouldNotPerformException {
          // todo: move to dal or any bco component. Jul should be independent from bco architecture.
          if (serviceState.getClass().getName().startsWith("org.openbase.type")) {
              return serviceState.getClass().getName();
          }
  
          if (serviceState.getClass().isEnum()) {
              logger.info(serviceState.getClass().getName());
              return serviceState.getClass().getName();
          }
  
          logger.debug("Simple class name of attribute to upper case [" + serviceState.getClass().getSimpleName().toUpperCase() + "]");
          JavaTypeToProto javaToProto;
          try {
              javaToProto = JavaTypeToProto.valueOf(serviceState.getClass().getSimpleName().toUpperCase());
          } catch (IllegalArgumentException ex) {
              throw new CouldNotPerformException("ServiceState is not a supported java primitive nor a supported rst type", ex);
          }
          logger.debug("According proto type [" + javaToProto.getProtoType().name() + "]");
          return javaToProto.getProtoType().name();
      }
docs: Get the string representation for a given serviceState which can be a
  proto message, enumeration or a java primitive.
  
  @param serviceState the serviceState
  
  @return a string representation of the serviceState type
  
  @throws CouldNotPerformException