package com.niklim.clicktrace.model.dao;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import com.google.common.base.Optional;
import com.google.common.base.Strings;
import com.niklim.clicktrace.model.Click;
import com.niklim.clicktrace.model.Session;
import com.niklim.clicktrace.props.UserProperties;
import com.niklim.clicktrace.service.SessionManager;
/**
* Reads {@link Session}'s properties file.
*/
public class SessionPropertiesReader extends SessionPropertiesIO {
public SessionPropertiesReader(Session session, UserProperties props) {
super(session, props);
}
public String getLabel(String shotFilename) {
return props.getProperty(shotFilename + SessionManager.PROP_SUFFIX_LABEL);
}
public String getShotDescription(String shotFilename) {
return props.getProperty(shotFilename + SessionManager.PROP_SUFFIX_DESCRIPTION);
}
public String getSessionDescription() {
return props.getProperty(SessionManager.PROP_SESSION_DESCRIPTION);
}
public List<Click> getClicks(String shotFilename) {
return Click.getList(Strings.nullToEmpty(props.getProperty(shotFilename + SessionManager.PROP_SUFFIX_CLICKS)));
}
public Optional<Map<String, Integer>> getOrdering() {
String ordString = props.getProperty(SessionManager.PROP_SESSION_ORDERING);
if (StringUtils.isEmpty(ordString)) {
return Optional.<Map<String, Integer>> absent();
}
Map<String, Integer> ordering = new HashMap<String, Integer>();
int i = 0;
for (String imgFilename : ordString.split(";")) {
ordering.put(imgFilename, i++);
}
return Optional.of(ordering);
}
}