code: private List decodeFilter(String value) {
          String[] nameAndFilters = value.split(DELIM_GRID_NAME);
  
          assert nameAndFilters.length == 2;
  
          String namespace = nameAndFilters[0];
          String[] filters = nameAndFilters[1].split(DELIM_FILTER_TERM);
  
          ArrayList/*<Filter>*/ gridFilters = new ArrayList/*<Filter>*/();
          for(int i = 0; i < filters.length; i++) {
              String[] terms = filters[i].split(DELIM_FILTER);
              Filter filter = null;
  
              if(terms.length == 2 && terms[1].equals("*"))
                  continue;
              else if(terms.length == 3) {
                  FilterOperation fOp = SQLSupport.mapFilterAbbreviationToOperation(terms[1]);
                  filter = _config.createFilter();
                  filter.setFilterExpression(terms[0]);
                  filter.setOperation(fOp);
                  filter.setValue(terms[2]);
              }
              else {
                  LOGGER.error(Bundle.getErrorString("DataGridStateCodec_IllegalFilter", new Object[]{filter}));
                  continue;
              }
  
              assert filter != null;
              gridFilters.add(filter);
          }
          return gridFilters;
      }
docs: /*
  Filter handling