Android Open Source - task4java U R L Builder






From Project

Back to project page task4java.

License

The source code is released under:

Apache License

If you think the Android project task4java listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 *  Copyright (c) 2014 Andree Hagelstein, Maik Schulze, Deutsche Telekom AG. All Rights Reserved.
 *  // w  w  w. j av  a2s . co  m
 *  Filename: URLBuilder.java
 */
package com.task4java.net;

import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

import com.task4java.KeyValuePair;
import com.task4java.StringUtils;

public class URLBuilder {

  private URL url;
  private List<KeyValuePair> queryParts = new ArrayList<KeyValuePair>();

  public URLBuilder(URL currentUrl) throws UnsupportedEncodingException {

    url = currentUrl;

    String query = url.getQuery();

    if ((query != null) && (query != "")) {

      StringTokenizer st = new StringTokenizer(url.getQuery(), "&", false);
      while (st.hasMoreElements()) {
        
        // First Pass to retrieve the "paramName=paramValue" combo
        String paramValueToken = st.nextElement().toString();

        StringTokenizer stParamVal = new StringTokenizer(paramValueToken, "=", false);

        String paramName = null;
        String paramValue = null;
        int i = 0;
        
        while (stParamVal.hasMoreElements()) {
          // Second pass to separate the "paramName" and "paramValue".
          // 1st token is paramName
          // 2nd token is paramValue
          String separatedToken = stParamVal.nextElement().toString();

          if (i == 0) {
            // This indicates that it is the paramName
            paramName = separatedToken;
          } else {
            // This will hold paramValue
            paramValue = separatedToken;
          }
          i++;
        }

        if (paramName != null) {
          addQueryPart(paramName, paramValue);
        }
      }
    }

  }

  public void addQueryParts(List<KeyValuePair> parameters) {

    if (parameters != null) {
      for (KeyValuePair parameter : parameters) {
        addQueryPart(parameter);
      }
    }
  }

  public void addQueryPart(KeyValuePair parameter) {

    addQueryPart(parameter.getKey(), parameter.getValue());
  }

  public void addQueryPart(String paramName, String paramValue) {

    KeyValuePair part = new KeyValuePair(paramName, paramValue);

    queryParts.add(part);
  }

  public void removeQueryParts(String paramName) {

    List<KeyValuePair> partsRemove = new ArrayList<KeyValuePair>();
    
    for (KeyValuePair part : queryParts) {
      
      if (part.getKey().equals(paramName))
      {
        partsRemove.add(part);
      }
    }
    
    queryParts.removeAll(partsRemove);
  }
  
  public static String getQuery(List<KeyValuePair> queryParts) throws UnsupportedEncodingException {
    
    StringBuilder queryBld = new StringBuilder();
    
    for (KeyValuePair part : queryParts) {
      if (!StringUtils.IsNullOrEmpty(part.getKey()) && part.getValue() != null)  {
        queryBld.append(queryBld.length() == 0 ? "" : "&");
        queryBld.append(part.getKey());
        queryBld.append("=");
        queryBld.append(part.getValue());
      }
    }
    
    return queryBld.toString();
  }

  public URL getURL() throws MalformedURLException, UnsupportedEncodingException {

    String query = getQuery(queryParts);
    String file = url.getPath();
    
    if (!StringUtils.IsNullOrEmpty(query)) {
      file += "?" + query;
    }

    URL result = new URL(url.getProtocol(), url.getHost(), url.getPort(), file);

    return result;
  }
}




Java Source Code List

com.task4java.IndexedList.java
com.task4java.KeyValuePair.java
com.task4java.Stopwatch.java
com.task4java.StringUtils.java
com.task4java.Tuple.java
com.task4java.android.activity.ActivityUtils.java
com.task4java.android.activity.BaseActivity.java
com.task4java.android.annotation.Annotations.java
com.task4java.android.examples.App.java
com.task4java.android.examples.activity.AboutActivity.java
com.task4java.android.examples.activity.ExpandableListAdapter.java
com.task4java.android.examples.activity.MainActivity.java
com.task4java.android.examples.activity.WelcomeActivity.java
com.task4java.android.examples.backend.AndroidServiceClient.java
com.task4java.android.util.concurrent.ActivityExecutor.java
com.task4java.android.util.concurrent.HandlerExecutor.java
com.task4java.data.backend.IServiceClient.java
com.task4java.data.backend.ServiceClient.java
com.task4java.data.backend.model.MainMenuAnnotation.java
com.task4java.data.frontend.ApplicationClient.java
com.task4java.data.frontend.model.MainMenuItemGroupList.java
com.task4java.data.frontend.model.MainMenuItemGroup.java
com.task4java.data.frontend.model.MainMenuItem.java
com.task4java.http.HttpHeaders.java
com.task4java.http.HttpMimeTypes.java
com.task4java.http.HttpRequestMethods.java
com.task4java.http.HttpStatusCodes.java
com.task4java.http.client.HttpContent.java
com.task4java.http.client.HttpStringContent.java
com.task4java.http.client.IImageClient.java
com.task4java.http.client.IRestClient.java
com.task4java.http.client.ImageClientGingerbread.java
com.task4java.http.client.ImageClient.java
com.task4java.http.client.ImageResponse.java
com.task4java.http.client.RestClientGingerbread.java
com.task4java.http.client.RestClient.java
com.task4java.http.client.RestResponse.java
com.task4java.lang.reflect.ReflectionCache.java
com.task4java.net.URLBuilder.java
com.task4java.util.concurrent.CallableTask.java
com.task4java.util.concurrent.CallableValue2.java
com.task4java.util.concurrent.CallableValue.java
com.task4java.util.concurrent.ITaskStart.java
com.task4java.util.concurrent.ITask.java
com.task4java.util.concurrent.TaskCompletionSource.java
com.task4java.util.concurrent.TaskContinuationOptions.java
com.task4java.util.concurrent.TaskException.java
com.task4java.util.concurrent.TaskFactory.java
com.task4java.util.concurrent.TaskResultException.java
com.task4java.util.concurrent.TaskStartException.java
com.task4java.util.concurrent.Task.java
com.task4java.util.log.ConsoleLogger.java
com.task4java.util.log.ILog.java
com.task4java.util.log.Logger.java