class CameraUrlGenerator {

  public String[] generateUrls(String[] baseUrls) { // NOPMD varargs instead of array
    Map<String, String> commands = new LinkedHashMap<>();
    Resolution resolution = source.getTargetResolution();
    if (resolution != null && resolution.getWidth() > 0 && resolution.getHeight() > 0) {
      commands.put("resolution", resolution.getWidth() + "x" + resolution.getHeight());
    }
    int compression = source.getTargetCompression();
    if (compression >= 0 && compression <= 100) {
      commands.put("compression", Integer.toString(compression));
    }
    int frameRate = source.getTargetFps();
    if (frameRate > 0) {
      commands.put("fps", Integer.toString(frameRate));
    }
    // Add a special case command for NI Cameras
    if (source.getName().contains("IMAQdx")) {
      commands.put("name", source.getName());
    }
    return generateUrls(commands, baseUrls);
  }

  public  CameraUrlGenerator(CameraServerSource source);

}