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

com.fimet.usecase.CodeStoreDefault Maven / Gradle / Ivy

The newest version!
package com.fimet.usecase;

import java.util.HashMap;
import java.util.Map;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;


@Component
public class CodeStoreDefault implements ICodeStore {
	private ECodeStore[] tmp;
	private Map map;
	private int index;
	private final int maxSize;
	private String[] fields;
	public CodeStoreDefault(
			@Value("${usecase.store.fields:38,39}") String fields,
			@Value("${codestore.maxsize:15}") Integer maxSize
	) {
		this.maxSize = maxSize;
		this.fields = fields.split(",");
		index = -1;
		tmp = new ECodeStore[maxSize];
		map = new HashMap<>();
		for (int i = 0; i < tmp.length; i++) {
			tmp[i] = new ECodeStore(this.fields.length);
		}
	}
	@Override
	public void store(IUseCase useCase) {
		index = (index+1)%maxSize;
		ECodeStore e = tmp[index];
		for (int i = 0; i < fields.length; i++) {
			e.setValue(i, useCase.getResponse().getValue(fields[i]));
		}
		map.put(useCase.getName(), index);
		tmp[index]= e;
	}
	@Override
	public ICode get(String useCaseName) {
		if (map.containsKey(useCaseName)) {
			return tmp[map.get(useCaseName)];
		} else {
			return null;
		}
	}
	@Override
	public void start() {
	}
	@Override
	public void reload() {
	}
	@Override
	public void stop() {
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy