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

com.softicar.platform.common.string.parameter.AbstractParameter Maven / Gradle / Ivy

Go to download

The SoftiCAR Platform is a lightweight, Java-based library to create interactive business web applications.

There is a newer version: 50.0.0
Show newest version
package com.softicar.platform.common.string.parameter;

import com.softicar.platform.common.core.utils.DevNull;

/**
 * This is a basic implementation of {@link IParameter}.
 *
 * @author Oliver Richers
 */
public abstract class AbstractParameter implements IParameter {

	private final String name;
	private final String valueString;

	public AbstractParameter(AbstractParameter parameter) {

		this.name = parameter.name;
		this.valueString = parameter.valueString;
	}

	public AbstractParameter(String name, String valueString) {

		this.name = name;
		this.valueString = valueString;
	}

	@Override
	public String getName() {

		return name;
	}

	@Override
	public boolean isNull() {

		return valueString == null;
	}

	@Override
	public T getValue() {

		if (isNull()) {
			throw new MissingParameterValueException(this);
		}

		try {
			return parseValueString(valueString);
		} catch (InvalidParameterValueException exception) {
			throw exception;
		} catch (Exception exception) {
			throw new InvalidParameterValueException(exception, this, valueString);
		}
	}

	@Override
	public T getValue(T defaultValue) {

		try {
			return getValue();
		} catch (MissingParameterValueException exception) {
			DevNull.swallow(exception);
			return defaultValue;
		}
	}

	protected abstract T parseValueString(String valueString);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy