All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.thetransactioncompany.jsonrpc2.util.ParamsRetriever Maven / Gradle / Ivy

Go to download

Java classes to represent, parse and serialise JSON-RPC 2.0 requests, notifications and responses.

There is a newer version: 2.2
Show newest version
package com.thetransactioncompany.jsonrpc2.util;


import com.thetransactioncompany.jsonrpc2.JSONRPC2Error;


/**
 * The base abstract class for the JSON-RPC 2.0 parameter retrievers.
 *
 * @author Vladimir Dzhuvinov
 * @version 1.34.3 (2012-12-22)
 */
public abstract class ParamsRetriever {

	
	/**
	 * Returns the parameter count.
	 *
	 * @return The parameters count.
	 */
	public abstract int size();


	/**
	 * Matches a string against an array of acceptable values.
	 *
	 * @param input       The string to match.
	 * @param enumStrings The acceptable string values. Must not be 
	 *                    {@code null}.
	 * @param ignoreCase  {@code true} for a case insensitive match.
	 *
	 * @return The matching string value, {@code null} if no match was
	 *         found.
	 */
	protected static String getEnumStringMatch(final String input, 
		                                   final String[] enumStrings, 
		                                   final boolean ignoreCase) {
	
		for (final String en: enumStrings) {
		
			if (ignoreCase) {
				if (en.equalsIgnoreCase(input))
					return en;
			}
			else {
				if (en.equals(input))
					return en;
			}
		}

		return null;
	}
	
	
	/**
	 * Matches a string against an enumeration of acceptable values.
	 *
	 * @param input      The string to match.
	 * @param enumClass  The enumeration class specifying the acceptable 
	 *                   string values. Must not be {@code null}.
	 * @param ignoreCase {@code true} for a case insensitive match.
	 *
	 * @return The matching enumeration constant, {@code null} if no match
	 *         was found.
	 */
	protected static > T getEnumStringMatch(final String input, 
		                                                  final Class enumClass, 
		                                                  final boolean ignoreCase) {
		
		for (T en: enumClass.getEnumConstants()) {
		
			if (ignoreCase) {
				if (en.toString().equalsIgnoreCase(input))
					return en;
			}
			else {
				if (en.toString().equals(input))
					return en;
			}
		}
		
		return null;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy