mirror of https://github.com/balkian/SOJA.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
227 lines
5.2 KiB
Java
227 lines
5.2 KiB
Java
/**
|
|
*
|
|
*/
|
|
package es.upm.dit.gsi.sojason.beans;
|
|
|
|
import jason.asSyntax.Literal;
|
|
|
|
import java.util.LinkedList;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
import es.upm.dit.gsi.jason.utils.NotationUtils;
|
|
|
|
/**
|
|
* @author miguel
|
|
*
|
|
*/
|
|
public class Journey implements Perceptable {
|
|
|
|
/** The departure time of the journey */
|
|
private String departureTime;
|
|
|
|
/** The arrival time of the journey */
|
|
private String arrivalTime;
|
|
|
|
/**
|
|
* The duration of the journey. This is not simply the difference of the
|
|
* departure and arrival time because of timezone considerations.
|
|
*/
|
|
private String duration;
|
|
|
|
/** The origin */
|
|
private String origin;
|
|
|
|
/** The destination */
|
|
private String destination;
|
|
|
|
/** The fee map that contains the different available fee */
|
|
private Map<String, String> fares;
|
|
|
|
/**
|
|
* @return the departureTime
|
|
*/
|
|
public String getDepartureTime() {
|
|
return departureTime;
|
|
}
|
|
|
|
/**
|
|
* @param departureTime
|
|
* the departureTime to set
|
|
*/
|
|
public void setDepartureTime(String departureTime) {
|
|
this.departureTime = departureTime;
|
|
}
|
|
|
|
/**
|
|
* @return the arrivalTime
|
|
*/
|
|
public String getArrivalTime() {
|
|
return arrivalTime;
|
|
}
|
|
|
|
/**
|
|
* @param arrivalTime
|
|
* the arrivalTime to set
|
|
*/
|
|
public void setArrivalTime(String arrivalTime) {
|
|
this.arrivalTime = arrivalTime;
|
|
}
|
|
|
|
/**
|
|
* @return the duration
|
|
*/
|
|
public String getDuration() {
|
|
return duration;
|
|
}
|
|
|
|
/**
|
|
* @param duration
|
|
* the duration to set
|
|
*/
|
|
public void setDuration(String duration) {
|
|
this.duration = duration;
|
|
}
|
|
|
|
/**
|
|
* @return the oringin
|
|
*/
|
|
public String getOringin() {
|
|
return origin;
|
|
}
|
|
|
|
/**
|
|
* @param oringin
|
|
* the oringin to set
|
|
*/
|
|
public void setOrigin(String origin) {
|
|
this.origin = origin;
|
|
}
|
|
|
|
/**
|
|
* @return the destination
|
|
*/
|
|
public String getDestination() {
|
|
return destination;
|
|
}
|
|
|
|
/**
|
|
* @param destination
|
|
* the destination to set
|
|
*/
|
|
public void setDestination(String destination) {
|
|
this.destination = destination;
|
|
}
|
|
|
|
/**
|
|
* @return the fares
|
|
*/
|
|
public Map<String, String> getFares() {
|
|
return fares;
|
|
}
|
|
|
|
/**
|
|
* @param fares
|
|
* the fares to set
|
|
*/
|
|
public void setFares(Map<String, String> fares) {
|
|
this.fares = fares;
|
|
}
|
|
|
|
/** Textual representation of the journey. Use for debuging purposes inly. */
|
|
public String toString() {
|
|
|
|
String toString = "From: ";
|
|
toString = toString.concat(origin);
|
|
toString = toString.concat(" (");
|
|
toString = toString.concat(departureTime);
|
|
toString = toString.concat(") to: ");
|
|
toString = toString.concat(destination);
|
|
toString = toString.concat(" (");
|
|
toString = toString.concat(arrivalTime);
|
|
toString = toString.concat(") in ");
|
|
toString = toString.concat(duration);
|
|
toString = toString.concat(" for ");
|
|
if (fares != null)
|
|
toString = toString.concat(fares.toString());
|
|
else
|
|
toString += null;
|
|
return toString;
|
|
}
|
|
|
|
/**
|
|
* journey(madrid, ciudad_real, 10.15, 11.5, [fare(turista, 22.5),
|
|
* fare(preferente, 35)] journey(madrid, ciudad_real, time(10,15),
|
|
* time(11,5), [fare(turista, 22.5), fare(preferente, 35)]
|
|
*
|
|
* @return
|
|
*/
|
|
public List<Literal> toPercepts() {
|
|
|
|
// if (this.fares.size() == 0){ return null; }
|
|
//
|
|
// String percept = "journey(";
|
|
// percept = percept.concat(this.origin);
|
|
// percept = percept.concat(", ");
|
|
// percept = percept.concat(this.destination);
|
|
// percept = percept.concat(", ");
|
|
// percept = percept.concat(this.departureTime);
|
|
// percept = percept.concat(", ");
|
|
// percept = percept.concat(this.arrivalTime);
|
|
//
|
|
// percept = percept.concat(", [");
|
|
// for(String fareName : fares.keySet()) {
|
|
// percept = percept.concat("fare(");
|
|
// percept = percept.concat(fareName);
|
|
// percept = percept.concat(", ");
|
|
// percept = percept.concat(fares.get(fareName));
|
|
// percept = percept.concat("), ");
|
|
// }
|
|
// percept = percept.substring(0, percept.lastIndexOf(","));
|
|
// percept = percept.concat("])");
|
|
//
|
|
// LinkedList<Literal> ret = new LinkedList<Literal>();
|
|
// ret.add(Literal.parseLiteral(percept));
|
|
//
|
|
// return ret;
|
|
|
|
if (this.fares.size() == 0) {
|
|
return null;
|
|
}
|
|
|
|
String percept = "journey(";
|
|
percept = percept.concat(NotationUtils.compact(this.origin));
|
|
percept = percept.concat(", ");
|
|
percept = percept.concat(NotationUtils.compact(this.destination));
|
|
|
|
percept = percept.concat(", time(");
|
|
String digits[] = this.departureTime.split("[\\x2E\\x3A]"); // [.:]
|
|
percept = percept.concat(digits[0]);
|
|
percept = percept.concat(", ");
|
|
percept = percept.concat(digits[1]);
|
|
|
|
percept = percept.concat("), time(");
|
|
digits = this.arrivalTime.split("[\\x2E\\x3A]"); // [.:]
|
|
percept = percept.concat(digits[0]);
|
|
percept = percept.concat(", ");
|
|
percept = percept.concat(digits[1]);
|
|
|
|
percept = percept.concat("), [");
|
|
for (String fareName : fares.keySet()) {
|
|
percept = percept.concat("fare(");
|
|
percept = percept.concat(NotationUtils.compact(fareName));
|
|
percept = percept.concat(", ");
|
|
percept = percept.concat(fares.get(fareName));
|
|
percept = percept.concat("), ");
|
|
}
|
|
percept = percept.substring(0, percept.lastIndexOf(","));
|
|
percept = percept.concat("])");
|
|
|
|
LinkedList<Literal> ret = new LinkedList<Literal>();
|
|
ret.add(Literal.parseLiteral(percept));
|
|
|
|
return ret;
|
|
}
|
|
|
|
}
|