src/main/java/js/http/ContentType.java
private static Map<String, String> parseParameters(String expression) {
		// charset = UTF-8

		Map<String, String> parameters = new HashMap<>();
		int parametersSeparatorIndex = 0;
		for (;;) {
			int valueSeparatorIndex = expression.indexOf('=', parametersSeparatorIndex);
			if (valueSeparatorIndex == -1) {
				break;
			}
			String name = expression.substring(parametersSeparatorIndex, valueSeparatorIndex).trim();

			++valueSeparatorIndex;
			parametersSeparatorIndex = expression.indexOf(';', valueSeparatorIndex);
			if (parametersSeparatorIndex == -1) {
				parametersSeparatorIndex = expression.length();
			}
			if (valueSeparatorIndex == parametersSeparatorIndex) {
				throw new SyntaxException("Invalid content type parameters |%s|. Value is empty.", expression);
			}

			if (parameters.put(name, expression.substring(valueSeparatorIndex, parametersSeparatorIndex).trim()) != null) {
				throw new SyntaxException("Invalid content type parameters |%s|. Name override |%s|.", expression, name);
			}
			++parametersSeparatorIndex;
		}

		if (parameters.isEmpty()) {
			throw new SyntaxException("Invalid content type parameters |%s|. Missing name/value separator.", expression);
		}

		return parameters;
	}
private static Map<String, String> parseParameters(String expression) {
		// charset = UTF-8

		Map<String, String> parameters = new HashMap<>();
		int parametersSeparatorIndex = 0;
		for (;;) {
			int valueSeparatorIndex = expression.indexOf('=', parametersSeparatorIndex);
			if (valueSeparatorIndex == -1) {
				break;
			}
			String name = expression.substring(parametersSeparatorIndex, valueSeparatorIndex).trim();

			++valueSeparatorIndex;
			parametersSeparatorIndex = expression.indexOf(';', valueSeparatorIndex);
			if (parametersSeparatorIndex == -1) {
				parametersSeparatorIndex = expression.length();
			}
			if (valueSeparatorIndex == parametersSeparatorIndex) {
				throw new SyntaxException("Invalid content type parameters |%s|. Value is empty.", expression);
			}

			if (parameters.put(name, expression.substring(valueSeparatorIndex, parametersSeparatorIndex).trim()) != null) {
				throw new SyntaxException("Invalid content type parameters |%s|. Name override |%s|.", expression, name);
			}
			++parametersSeparatorIndex;
		}

		if (parameters.isEmpty()) {
			throw new SyntaxException("Invalid content type parameters |%s|. Missing name/value separator.", expression);
		}

		return parameters;
	}
private static Map < String , String > parseParameters ( String expression ) { // charset = UTF-8
 Map < String , String > parameters = new HashMap <> ( ) ; int parametersSeparatorIndex = 0 ; for ( ; ; ) { int valueSeparatorIndex = expression . indexOf ( ' ' , parametersSeparatorIndex ) ; if ( valueSeparatorIndex == - 1 ) { break ; } String name = expression . substring ( parametersSeparatorIndex , valueSeparatorIndex ) . trim ( ) ; ++ valueSeparatorIndex ; parametersSeparatorIndex = expression . indexOf ( ' ' , valueSeparatorIndex ) ; if ( parametersSeparatorIndex == - 1 ) { parametersSeparatorIndex = expression . length ( ) ; } if ( valueSeparatorIndex == parametersSeparatorIndex ) { throw new SyntaxException ( "Invalid content type parameters |%s|. Value is empty." , expression ) ; } if ( parameters . put ( name , expression . substring ( valueSeparatorIndex , parametersSeparatorIndex ) . trim ( ) ) != null ) { throw new SyntaxException ( "Invalid content type parameters |%s|. Name override |%s|." , expression , name ) ; } ++ parametersSeparatorIndex ; } if ( parameters . isEmpty ( ) ) { throw new SyntaxException ( "Invalid content type parameters |%s|. Missing name/value separator." , expression ) ; } return parameters ; }
Parse content type parameters. Given parameters expression should be valid accordingly grammar from class description; it
should not start with parameters separator, that is, semicolon.

@param expression content type parameters expression.
@return non empty parameters map.
@throws SyntaxException if parameters expression is not valid.
Parse content type parameters . Given parameters expression should be valid accordingly grammar from class description ; it should not start with parameters separator that is semicolon .