public void init(ServiceRepositoryQuerySpec querySpec) {
   this.querySpec = querySpec;
   pattern = querySpec.getPattern();
   if (pattern == null || pattern == "") pattern = ".*";
   assetType = querySpec.getSearchFor();
   searchResult = createSearchResult();
 }
  public Iterable<IEObjectDescription> doSearch(ResourceSet rs) {
    Iterable<IEObjectDescription> result = new ArrayList<IEObjectDescription>();

    String minStateName = querySpec.getMinState();
    String maxStateName = querySpec.getMaxState();
    LifecycleState minState = null;
    if (minStateName != null && minStateName != "") {
      minState =
          eObjectLookup.getModelElementByName(
              minStateName, rs, ProfileDslPackage.Literals.LIFECYCLE.getName());
    }
    LifecycleState maxState = null;
    if (maxStateName != null && minStateName != "") {
      maxState =
          eObjectLookup.getModelElementByName(
              maxStateName, rs, ProfileDslPackage.Literals.LIFECYCLE.getName());
    }
    String minVersion = null;
    if (!"".equals(querySpec.getMinVersion())) minVersion = querySpec.getMinVersion();
    String maxVersion = null;
    if (!"".equals(querySpec.getMaxVersion())) maxVersion = querySpec.getMaxVersion();

    String queryName = querySpec.getQueryName();

    if (FindUnapprovedAssetsQuery.class.getName().equals(queryName)) {
      unApprovedServicesQuery = injector.getInstance(FindUnapprovedAssetsQuery.class);
      result =
          unApprovedServicesQuery.search(
              pattern,
              assetType,
              minState,
              maxState,
              minVersion,
              maxVersion,
              querySpec.isCanonicalNamespaces(),
              querySpec.isNonCanonicalNamespaces(),
              rs);
    } else {
      FindAssetsWithStateQuery query = injector.getInstance(FindAssetsWithStateQuery.class);
      result =
          query.search(
              pattern,
              assetType,
              minState,
              maxState,
              minVersion,
              maxVersion,
              querySpec.isCanonicalNamespaces(),
              querySpec.isNonCanonicalNamespaces(),
              querySpec.getTagNames(),
              querySpec.isAllTags(),
              querySpec.isWithTagsFromParent(),
              rs);
    }
    return result;
  }