code: public static KAMCatalogDao.KamFilter convert(KamFilter wsFilter,
              KamInfo kamInfo) throws InvalidIdException {
          if (null != wsFilter) {
              // create a new one and send it back
              KAMCatalogDao.KamFilter ret = kamInfo.createKamFilter();
  
              for (AnnotationFilterCriteria ac : wsFilter.getAnnotationCriteria()) {
                  ret.add(convert(ac));
              }
              for (BelDocumentFilterCriteria bc : wsFilter.getDocumentCriteria()) {
                  ret.add(convert(bc));
              }
              for (CitationFilterCriteria cc : wsFilter.getCitationCriteria()) {
                  ret.add(convert(cc));
              }
              for (RelationshipTypeFilterCriteria rc : wsFilter
                      .getRelationshipCriteria()) {
                  ret.add(convert(rc));
              }
  
              return ret;
          }
          return null;
      }
docs: Converts a {@link KamFilter ws KAM filter} into a {@link KAMCatalogDao.KamFilter KAM filter}.
  @param wsFilter
  @param kamInfo
  @return
  @throws InvalidIdException