code: public CmsStateBean parseState(String state, String baseOU) {
  
          String path = baseOU;
          String filter = "";
          I_CmsOuTreeType type = CmsOuTreeType.OU;
          CmsUUID groupId = null;
          List<String> fields = CmsStringUtil.splitAsList(state, STATE_SEPERATOR);
          if (!fields.isEmpty()) {
              if (fields.size() > 1) {
                  path = fields.get(1);
                  //Make sure to only show OUs which are under baseOU
                  if (path.equals("") | !path.startsWith(baseOU)) {
                      path = baseOU;
                  }
              }
              for (I_CmsOuTreeType ty : getTreeTypeProvider().getTreeTypes()) {
                  if (fields.get(0).equals(ty.getId())) {
                      type = ty;
                  }
              }
              if (fields.size() > 2) {
                  if (!CmsStringUtil.isEmptyOrWhitespaceOnly(fields.get(2))) {
                      groupId = new CmsUUID(fields.get(2));
                  }
              }
              if (fields.size() > 3) {
                  filter = fields.get(3);
              }
          }
          return new CmsStateBean(path, type, groupId, filter);
      }
docs: Parses a given state string to state bean.<p>
  
  @param state to be read
  @param baseOU baseOu
  @return CmsStateBean