/*
* Copyright (c) 2012 Data Harmonisation Panel
*
* All rights reserved. This program and the accompanying materials are made
* available under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of the License,
* or (at your option) any later version.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this distribution. If not, see <http://www.gnu.org/licenses/>.
*
* Contributors:
* Data Harmonisation Panel <http://www.dhpanel.eu>
*/
package eu.esdihumboldt.hale.common.headless.transform;
import eu.esdihumboldt.hale.common.core.io.Value;
import eu.esdihumboldt.hale.common.core.io.project.model.Project;
import eu.esdihumboldt.hale.common.instance.geometry.CRSProvider;
import eu.esdihumboldt.hale.common.instance.geometry.impl.AbstractCRSManager;
import eu.esdihumboldt.hale.common.instance.io.InstanceReader;
/**
* CRS manager that retrieves information about configured CRS from a project.
*
* @author Simon Templer
*/
public class ProjectCRSManager extends AbstractCRSManager {
private final Project project;
/**
* Create a CRS manager based on the given project.
*
* @param reader the instance reader
* @param provider the CRS provider
* @param project the project
*
* @see AbstractCRSManager#AbstractCRSManager(InstanceReader, CRSProvider)
*/
public ProjectCRSManager(InstanceReader reader, CRSProvider provider, Project project) {
super(reader, provider);
this.project = project;
}
/**
* @see AbstractCRSManager#storeValue(String, String)
*/
@Override
protected void storeValue(String key, String value) {
project.getProperties().put(key, Value.of(value));
}
/**
* @see AbstractCRSManager#loadValue(String)
*/
@Override
protected String loadValue(String key) {
Value value = project.getProperties().get(key);
if (value != null) {
return value.as(String.class);
}
return null;
}
}