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

io.github.bhowell2.apilib.ApiArrayParam Maven / Gradle / Ivy

package io.github.bhowell2.apilib;


import java.util.Map;

/**
 * Requires that the parameter be of type Array.
 * @param 
 * @param 
 * @author Blake Howell
 */
public class ApiArrayParam extends ApiCollectionParam {

	public static  Builder builder(String keyName) {
		return new Builder<>(keyName);
	}

	public static  Builder copyFrom(String keyName, ApiArrayParam copyFrom) {
		return new Builder<>(keyName, copyFrom);
	}

	public static  Builder unnamedBuilder() {
		return builder(null);
	}

	public static  Builder, Param>
	mapInputBuilder(String keyName) {
		return builder(keyName);
	}

	public static  Builder, Param>
	mapInputBuilder(String keyName, Class paramType) {
		return builder(keyName);
	}

	public static  Builder innerArrayBuilder() {
		return unnamedBuilder();
	}

	public static  Builder innerArrayBuilder(Class paramType) {
		return unnamedBuilder();
	}


	public static class Builder extends ApiCollectionParam.Builder<
		In,
		Param,
		Param[],
		Builder,
		ApiArrayParam> {

		public Builder(String keyName) {
			super(keyName);
		}

		public Builder(String keyName, ApiArrayParam copyFrom) {
			super(keyName, copyFrom);
		}

		@Override
		protected ApiArrayParam buildImplementation() {
			return new ApiArrayParam<>(this);
		}

	}

	private ApiArrayParam(Builder builder) {
		super(builder);
	}

	@Override
	protected int getCollectionSize(Param[] paramCollection) {
		return paramCollection.length;
	}

	@Override
	protected Param getParamAtIndex(int i, Param[] paramCollection) {
		return paramCollection[i];
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy