/*******************************************************************************
* Copyright (c) 2012-2015 INRIA.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Damien Dosimont <damien.dosimont@imag.fr>
* Youenn Corre <youenn.corret@inria.fr>
******************************************************************************/
package fr.inria.soctrace.tools.ocelotl.core.caches;
import java.util.ArrayList;
import java.util.List;
import fr.inria.soctrace.lib.model.EventProducer;
import fr.inria.soctrace.lib.model.EventType;
import fr.inria.soctrace.tools.ocelotl.core.parameters.OcelotlDefaultParameterConstants;
import fr.inria.soctrace.tools.ocelotl.core.parameters.OcelotlParameters;
/**
* Describe the parameters used to check if a trace can be loaded from cache
*/
public class CacheParameters {
private String traceName;
private int traceID;
private long startTimestamp;
private long endTimestamp;
private int nbTimeSlice;
private String dataAggOperator;
private String microModelType;
private String visuAggOperator;
private double treshold;
private boolean normalized;
private boolean leafAggregation;
private int maxLeaf;
private List<Integer> eventProducers;
private List<Integer> eventTypes;
public List<Integer> getEventProducers() {
return eventProducers;
}
public void setEventProducers(List<Integer> eventProducers) {
this.eventProducers = eventProducers;
}
public List<Integer> getEventTypes() {
return eventTypes;
}
public void setEventTypes(List<Integer> eventTypes) {
this.eventTypes = eventTypes;
}
public CacheParameters() {
traceName = "";
traceID = -1;
startTimestamp = 0L;
endTimestamp = 0L;
nbTimeSlice = 0;
dataAggOperator = "null";
visuAggOperator = "null";
microModelType = "null";
treshold = OcelotlDefaultParameterConstants.Threshold;
normalized = false;
eventProducers = new ArrayList<Integer>();
eventTypes = new ArrayList<Integer>();
leafAggregation = false;
maxLeaf = -1;
}
/**
* Create a CacheParameter from an OcelotlParameter
*
* @param oParam
* the Ocelotl parameters
*/
public CacheParameters(OcelotlParameters oParam) {
traceName = oParam.getTrace().getAlias();
traceID = oParam.getTrace().getId();
startTimestamp = oParam.getTimeRegion().getTimeStampStart();
endTimestamp = oParam.getTimeRegion().getTimeStampEnd();
nbTimeSlice = oParam.getTimeSlicesNumber();
treshold = oParam.getThreshold();
normalized = oParam.isNormalize();
leafAggregation = oParam.isHasLeaveAggregated();
eventProducers = new ArrayList<Integer>();
eventTypes = new ArrayList<Integer>();
if(leafAggregation)
maxLeaf = oParam.getMaxNumberOfLeaves();
else
maxLeaf = -1;
for (EventType anET : oParam.getTraceTypeConfig().getTypes())
eventTypes.add(anET.getId());
for (EventProducer anEP : oParam.getCurrentProducers())
eventProducers.add(anEP.getId());
if (oParam.getDataAggOperator() == null) {
dataAggOperator = "null";
} else {
dataAggOperator = oParam.getDataAggOperator();
}
if (oParam.getVisuOperator() == null) {
visuAggOperator = "null";
} else {
visuAggOperator = oParam.getVisuOperator();
}
if (oParam.getMicroModelType() == null) {
microModelType = "null";
} else {
microModelType = oParam.getMicroModelType();
}
}
public String getTraceName() {
return traceName;
}
public void setTraceName(String traceName) {
this.traceName = traceName;
}
public int getTraceID() {
return traceID;
}
public void setTraceID(int traceID) {
this.traceID = traceID;
}
public long getStartTimestamp() {
return startTimestamp;
}
public void setStartTimestamp(long startTimestamp) {
this.startTimestamp = startTimestamp;
}
public long getEndTimestamp() {
return endTimestamp;
}
public void setEndTimestamp(long endTimestamp) {
this.endTimestamp = endTimestamp;
}
public int getNbTimeSlice() {
return nbTimeSlice;
}
public void setNbTimeSlice(int nbTimeSlice) {
this.nbTimeSlice = nbTimeSlice;
}
public String getDataAggOperator() {
return dataAggOperator;
}
public void setDataAggOperator(String timeAggOperator) {
this.dataAggOperator = timeAggOperator;
}
public String getVisuAggOperator() {
return visuAggOperator;
}
public void setVisuAggOperator(String spaceAggOperator) {
this.visuAggOperator = spaceAggOperator;
}
public String getMicroModelType() {
return microModelType;
}
public void setMicroModelType(String microModelType) {
this.microModelType = microModelType;
}
public double getTreshold() {
return treshold;
}
public void setTreshold(double treshold) {
this.treshold = treshold;
}
public boolean isNormalized() {
return normalized;
}
public void setNormalized(boolean normalized) {
this.normalized = normalized;
}
public boolean isLeafAggregation() {
return leafAggregation;
}
public void setLeafAggregation(boolean leafAggregation) {
this.leafAggregation = leafAggregation;
}
public int getMaxLeaf() {
return maxLeaf;
}
public void setMaxLeaf(int maxLeaf) {
this.maxLeaf = maxLeaf;
}
}