/**
  * Converts the given {@link Response} to a {@link de.aflx.sardine.DavResource}.
  *
  * @param response The response complex type of the multistatus
  * @throws java.net.URISyntaxException If parsing the href from the response element fails
  */
 public DavResource(Response response) throws URISyntaxException {
   this.href = new URI(response.getHref());
   // this.href = new URI(response.getHref().get(0));
   this.creation = SardineUtil.parseDate(this.getCreationDate(response));
   this.modified = SardineUtil.parseDate(this.getModifiedDate(response));
   this.contentType = this.getContentType(response);
   this.contentLength = this.getContentLength(response);
   this.etag = this.getEtag(response);
   this.customProps = this.getCustomProps(response);
 }
 /**
  * Retrieves modifieddate from props. If it is not available return null.
  *
  * @param response The response complex type of the multistatus
  * @return Null if not found in props
  */
 private String getModifiedDate(Response response) {
   Propstat list = response.getPropstat();
   if (list.equals("") || null == list) {
     return null;
   }
   return list.getProp().getGetlastmodified();
   /*if (list.isEmpty()) {
   	return null;
   }
         for(Propstat propstat: list) {
             Getlastmodified glm = propstat.getProp().getGetlastmodified();
             if ((glm != null) && (glm.getContent().size() == 1)) {
                 return glm.getContent().get(0);
             }
         }
   return null; */
 }
 /**
  * Retrieves content-length from props. If it is not available return {@link
  * #DEFAULT_CONTENT_LENGTH}.
  *
  * @param response The response complex type of the multistatus
  * @return contentlength
  */
 private String getEtag(Response response) {
   Propstat list = response.getPropstat();
   if (list.equals("") || null == list) {
     return null;
   }
   return list.getProp().getGetetag();
   /*List<Propstat> list = response.getPropstat();
   if (list.isEmpty()) {
             return null;
         }
         for(Propstat propstat: list) {
             Getetag etag = propstat.getProp().getGetetag();
             if ((etag != null) && (etag.getContent().size() == 1))
             {
                 return etag.getContent().get(0);
             }
         }
   return null;*/
 }
 /**
  * Retrieves creationdate from props. If it is not available return null.
  *
  * @param response The response complex type of the multistatus
  * @return Null if not found in props
  */
 private String getCreationDate(Response response) {
   Propstat list = response.getPropstat();
   if (list.equals("") || null == list) {
     return null;
   }
   return list.getProp().getCreationdate();
   /*List<Propstat> list = response.getPropstat();
         if (list.isEmpty()) {
             return null;
         }
         for(Propstat propstat: list) {
             Creationdate gcd = propstat.getProp().getCreationdate();
             if ((gcd != null) && (gcd.getContent().size() == 1))
             {
                 return gcd.getContent().get(0);
             }
         }
   return null;*/
 }
  /**
   * Retrieves the content-type from prop or set it to {@link #DEFAULT_CONTENT_TYPE}. If isDirectory
   * always set the content-type to {@link #HTTPD_UNIX_DIRECTORY_CONTENT_TYPE}.
   *
   * @param response The response complex type of the multistatus
   * @return the content type.
   */
  private String getContentType(Response response) {
    Propstat list = response.getPropstat();
    if (list.equals("") || null == list) {
      return null;
    }

    String type = list.getProp().getGetcontenttype();

    // If there is no content type set in the properties, we will parse the href
    if (null == type) {
      if (this.getHref().toString().endsWith("/")) {
        type = HTTPD_UNIX_DIRECTORY_CONTENT_TYPE;
      } else {
        type = DEFAULT_CONTENT_TYPE;
      }
    }

    return type;
    /*// Make sure that directories have the correct content type.
    List<Propstat> list = response.getPropstat();
    if (list.isEmpty()) {
    	return null;
    }
          for(Propstat propstat: list) {
              Resourcetype resourcetype = propstat.getProp().getResourcetype();
              if ((resourcetype != null) && (resourcetype.getCollection() != null))
              {
                  // Need to correct the contentType to identify as a directory.
                  return HTTPD_UNIX_DIRECTORY_CONTENT_TYPE;
              }
              else
              {
                  Getcontenttype gtt = propstat.getProp().getGetcontenttype();
                  if ((gtt != null) && (gtt.getContent().size() == 1))
                  {
                      return gtt.getContent().get(0);
                  }
              }
          }
    return DEFAULT_CONTENT_TYPE;*/
  }