public byte[] getResource(String url) {
    Log.d("PCL", "getResource('" + url + "')");
    AndroidResource r = getDB().getResource(url);
    if (r == null) {
      r = registerResource(url, 0);
    }

    return r.getContent();
  }
  public Questionnaire getQuestionaire(String url) {
    Log.d("PCL", "getQuestionaire('" + url + "')");
    AndroidResource r = getDB().getResource(url);
    if (r == null) {
      r = registerResource(url, RESOURCE_FLAG_QUESTIONNAIRE);
    }
    if (r.getContent() == null) {
      Log.d("PCL", "Fetching content, not in cache");
      byte[] content = fetchURL(url);
      if (content != null) {
        r.setContent(content);
      }
    }
    if (r.getContent() == null) return null;

    QuestionnaireHandler handler = new QuestionnaireHandler();
    parseQuestionaire(new ByteArrayInputStream(r.getContent()), handler);
    return handler.getQuestionaire();
  }