public ModelCloudProxySet hasHostName(String lower, String upper) {
    ModelCloudProxySet result = new ModelCloudProxySet();

    for (ModelCloudProxy obj : this) {
      if (lower.compareTo(obj.getHostName()) <= 0 && obj.getHostName().compareTo(upper) <= 0) {
        result.add(obj);
      }
    }

    return result;
  }
  public ModelCloudProxySet hasHostName(String value) {
    ModelCloudProxySet result = new ModelCloudProxySet();

    for (ModelCloudProxy obj : this) {
      if (value.equals(obj.getHostName())) {
        result.add(obj);
      }
    }

    return result;
  }
  public ModelCloudProxySet hasPortNo(int lower, int upper) {
    ModelCloudProxySet result = new ModelCloudProxySet();

    for (ModelCloudProxy obj : this) {
      if (lower <= obj.getPortNo() && obj.getPortNo() <= upper) {
        result.add(obj);
      }
    }

    return result;
  }
  public ModelCloudProxySet hasPortNo(int value) {
    ModelCloudProxySet result = new ModelCloudProxySet();

    for (ModelCloudProxy obj : this) {
      if (value == obj.getPortNo()) {
        result.add(obj);
      }
    }

    return result;
  }
  public ModelCloudProxySet hasProvidedSpaces(Object value) {
    ObjectSet neighbors = new ObjectSet();

    if (value instanceof Collection) {
      neighbors.addAll((Collection<?>) value);
    } else {
      neighbors.add(value);
    }

    ModelCloudProxySet answer = new ModelCloudProxySet();

    for (ModelCloudProxy obj : this) {
      if (!Collections.disjoint(neighbors, obj.getProvidedSpaces())) {
        answer.add(obj);
      }
    }

    return answer;
  }
  public ModelCloudProxySet hasRoot(Object value) {
    ObjectSet neighbors = new ObjectSet();

    if (value instanceof Collection) {
      neighbors.addAll((Collection<?>) value);
    } else {
      neighbors.add(value);
    }

    ModelCloudProxySet answer = new ModelCloudProxySet();

    for (ModelCloudProxy obj : this) {
      if (neighbors.contains(obj.getRoot())) {
        answer.add(obj);
      }
    }

    return answer;
  }