SerializationController.java

package de.japrost.jabudget.spring;

import static de.japrost.jabudget.spring.PathMapping.BASE;
import static de.japrost.jabudget.spring.PathMapping.SERIALIZATION_DESERIALIZE;
import static de.japrost.jabudget.spring.PathMapping.SERIALIZATION_SERIALIZE;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import de.japrost.jabudget.service.SerializationService;

/**
 * Controller to expose serialization.
 */
@RestController
@RequestMapping(BASE)
public class SerializationController {

	private final SerializationService serializationService;

	/**
	 * Instantiate with necessary dependencies.
	 * 
	 * @param serializationService the SerializationService to use.
	 */
	public SerializationController(SerializationService serializationService) {
		this.serializationService = serializationService;
	}

	/**
	 * Serialize to the configured default serialization store.
	 */
	@GetMapping(SERIALIZATION_SERIALIZE)
	public void defaultSerialize() {
		serializationService.serialize();
	}

	/**
	 * Deserialize from the configured default serialization store.
	 */
	// TODO GET is not the right verb since deserialization changes the whole system.
	@GetMapping(SERIALIZATION_DESERIALIZE)
	public void defaultDeserialize() {
		serializationService.deserialize();
	}
}