src/main/java/org/wymiwyg/commons/util/URI.java
private void initializePath(String p_uriSpec)
		throws MalformedURIException {
		if (p_uriSpec == null) {
			throw new MalformedURIException("Cannot initialize path from null string!");
		}

		int index = 0;
		int start = 0;
		int end = p_uriSpec.length();
		char testChar = '\0';

		// path - everything up to query string or fragment
		while (index < end) {
			testChar = p_uriSpec.charAt(index);
			if (testChar == '?' || testChar == '#') {
				break;
			}
			// check for valid escape sequence
			if (testChar == '%') {
				if (index + 2 >= end
					|| !isHex(p_uriSpec.charAt(index + 1))
					|| !isHex(p_uriSpec.charAt(index + 2))) {
					throw new MalformedURIException("Path contains invalid escape sequence!");
				}
			} else if (
				!isReservedCharacter(testChar)
					&& !isUnreservedCharacter(testChar)) {
				throw new MalformedURIException(
					"Path contains invalid character: " + testChar);
			}
			index++;
		}
		m_path = p_uriSpec.substring(start, index);

		// query - starts with ? and up to fragment or end
		if (testChar == '?') {
			index++;
			start = index;
			while (index < end) {
				testChar = p_uriSpec.charAt(index);
				if (testChar == '#') {
					break;
				}
				if (testChar == '%') {
					if (index + 2 >= end
						|| !isHex(p_uriSpec.charAt(index + 1))
						|| !isHex(p_uriSpec.charAt(index + 2))) {
						throw new MalformedURIException("Query string contains invalid escape sequence!");
					}
				} else if (
					!isReservedCharacter(testChar)
						&& !isUnreservedCharacter(testChar)) {
					throw new MalformedURIException(
						"Query string contains invalid character:" + testChar);
				}
				index++;
			}
			m_queryString = p_uriSpec.substring(start, index);
		}

		// fragment - starts with #
		if (testChar == '#') {
			index++;
			start = index;
			while (index < end) {
				testChar = p_uriSpec.charAt(index);

				if (testChar == '%') {
					if (index + 2 >= end
						|| !isHex(p_uriSpec.charAt(index + 1))
						|| !isHex(p_uriSpec.charAt(index + 2))) {
						throw new MalformedURIException("Fragment contains invalid escape sequence!");
					}
				} else if (
					!isReservedCharacter(testChar)
						&& !isUnreservedCharacter(testChar)) {
					throw new MalformedURIException(
						"Fragment contains invalid character:" + testChar);
				}
				index++;
			}
			m_fragment = p_uriSpec.substring(start, index);
		}
	}
private void initializePath(String p_uriSpec)
		throws MalformedURIException {
		if (p_uriSpec == null) {
			throw new MalformedURIException("Cannot initialize path from null string!");
		}

		int index = 0;
		int start = 0;
		int end = p_uriSpec.length();
		char testChar = '\0';

		// path - everything up to query string or fragment
		while (index < end) {
			testChar = p_uriSpec.charAt(index);
			if (testChar == '?' || testChar == '#') {
				break;
			}
			// check for valid escape sequence
			if (testChar == '%') {
				if (index + 2 >= end
					|| !isHex(p_uriSpec.charAt(index + 1))
					|| !isHex(p_uriSpec.charAt(index + 2))) {
					throw new MalformedURIException("Path contains invalid escape sequence!");
				}
			} else if (
				!isReservedCharacter(testChar)
					&& !isUnreservedCharacter(testChar)) {
				throw new MalformedURIException(
					"Path contains invalid character: " + testChar);
			}
			index++;
		}
		m_path = p_uriSpec.substring(start, index);

		// query - starts with ? and up to fragment or end
		if (testChar == '?') {
			index++;
			start = index;
			while (index < end) {
				testChar = p_uriSpec.charAt(index);
				if (testChar == '#') {
					break;
				}
				if (testChar == '%') {
					if (index + 2 >= end
						|| !isHex(p_uriSpec.charAt(index + 1))
						|| !isHex(p_uriSpec.charAt(index + 2))) {
						throw new MalformedURIException("Query string contains invalid escape sequence!");
					}
				} else if (
					!isReservedCharacter(testChar)
						&& !isUnreservedCharacter(testChar)) {
					throw new MalformedURIException(
						"Query string contains invalid character:" + testChar);
				}
				index++;
			}
			m_queryString = p_uriSpec.substring(start, index);
		}

		// fragment - starts with #
		if (testChar == '#') {
			index++;
			start = index;
			while (index < end) {
				testChar = p_uriSpec.charAt(index);

				if (testChar == '%') {
					if (index + 2 >= end
						|| !isHex(p_uriSpec.charAt(index + 1))
						|| !isHex(p_uriSpec.charAt(index + 2))) {
						throw new MalformedURIException("Fragment contains invalid escape sequence!");
					}
				} else if (
					!isReservedCharacter(testChar)
						&& !isUnreservedCharacter(testChar)) {
					throw new MalformedURIException(
						"Fragment contains invalid character:" + testChar);
				}
				index++;
			}
			m_fragment = p_uriSpec.substring(start, index);
		}
	}
private void initializePath ( String p_uriSpec ) throws MalformedURIException { if ( p_uriSpec == null ) { throw new MalformedURIException ( "Cannot initialize path from null string!" ) ; } int index = 0 ; int start = 0 ; int end = p_uriSpec . length ( ) ; char testChar = ' ' ; // path - everything up to query string or fragment
 while ( index < end ) { testChar = p_uriSpec . charAt ( index ) ; if ( testChar == ' ' || testChar == ' ' ) { break ; } // check for valid escape sequence
 if ( testChar == ' ' ) { if ( index + 2 >= end || ! isHex ( p_uriSpec . charAt ( index + 1 ) ) || ! isHex ( p_uriSpec . charAt ( index + 2 ) ) ) { throw new MalformedURIException ( "Path contains invalid escape sequence!" ) ; } } else if ( ! isReservedCharacter ( testChar ) && ! isUnreservedCharacter ( testChar ) ) { throw new MalformedURIException ( "Path contains invalid character: " + testChar ) ; } index ++ ; } m_path = p_uriSpec . substring ( start , index ) ; // query - starts with ? and up to fragment or end
 if ( testChar == ' ' ) { index ++ ; start = index ; while ( index < end ) { testChar = p_uriSpec . charAt ( index ) ; if ( testChar == ' ' ) { break ; } if ( testChar == ' ' ) { if ( index + 2 >= end || ! isHex ( p_uriSpec . charAt ( index + 1 ) ) || ! isHex ( p_uriSpec . charAt ( index + 2 ) ) ) { throw new MalformedURIException ( "Query string contains invalid escape sequence!" ) ; } } else if ( ! isReservedCharacter ( testChar ) && ! isUnreservedCharacter ( testChar ) ) { throw new MalformedURIException ( "Query string contains invalid character:" + testChar ) ; } index ++ ; } m_queryString = p_uriSpec . substring ( start , index ) ; } // fragment - starts with #
 if ( testChar == ' ' ) { index ++ ; start = index ; while ( index < end ) { testChar = p_uriSpec . charAt ( index ) ; if ( testChar == ' ' ) { if ( index + 2 >= end || ! isHex ( p_uriSpec . charAt ( index + 1 ) ) || ! isHex ( p_uriSpec . charAt ( index + 2 ) ) ) { throw new MalformedURIException ( "Fragment contains invalid escape sequence!" ) ; } } else if ( ! isReservedCharacter ( testChar ) && ! isUnreservedCharacter ( testChar ) ) { throw new MalformedURIException ( "Fragment contains invalid character:" + testChar ) ; } index ++ ; } m_fragment = p_uriSpec . substring ( start , index ) ; } }
Initialize the path for this URI from a URI string spec.

@param p_uriSpec the URI specification (cannot be null)

@exception MalformedURIException if p_uriSpec violates syntax rules
Initialize the path for this URI from a URI string spec .