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

com.iprogrammerr.bright.server.model.StringsObjects Maven / Gradle / Ivy

package com.iprogrammerr.bright.server.model;

import java.util.ArrayList;
import java.util.List;

import com.iprogrammerr.bright.server.exception.NotFoundException;

public final class StringsObjects implements KeysValues {

    private final List keysValues;

    public StringsObjects() {
	this.keysValues = new ArrayList<>();
    }

    public StringsObjects(List keyValues) {
	this.keysValues = keyValues;
    }

    @Override
    public  boolean has(String key, Class clazz) {
	for (KeyValue keyValue : keysValues) {
	    if (keyValue.key().equals(key) && keyValue.value().getClass().isAssignableFrom(clazz)) {
		return true;
	    }
	}
	return false;
    }

    @Override
    public  T value(String key, Class clazz) throws Exception {
	for (KeyValue keyValue : keysValues) {
	    if (keyValue.key().equals(key) && keyValue.value().getClass().isAssignableFrom(clazz)) {
		return (T) keyValue.value();
	    }
	}
	throw new NotFoundException();
    }

    @Override
    public KeysValues add(String key, Object value) {
	KeyValue keyValue = new StringObject(key, value);
	int indexOfPrevious = index(keyValue.key());
	if (indexOfPrevious >= 0) {
	    keysValues.set(indexOfPrevious, keyValue);
	} else {
	    keysValues.add(keyValue);
	}
	return this;
    }

    private int index(String key) {
	for (int i = 0; i < keysValues.size(); i++) {
	    if (keysValues.get(i).key().equals(key)) {
		return i;
	    }
	}
	return -1;
    }

    @Override
    public boolean empty() {
	return keysValues.isEmpty();
    }

    @Override
    public List keysValues() {
	return keysValues;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy