2012-06-08 15:28:36 +02:00
|
|
|
package com.Acrobot.Breeze.Utils;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @author Acrobot
|
|
|
|
*/
|
|
|
|
public class PriceUtil {
|
|
|
|
public static final double NO_PRICE = -1;
|
|
|
|
public static final double FREE = 0;
|
|
|
|
|
|
|
|
public static final String FREE_TEXT = "free";
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Gets the price from the text
|
|
|
|
* @param text Text to check
|
|
|
|
* @param indicator Price indicator (for example, B for buy)
|
|
|
|
* @return price
|
|
|
|
*/
|
|
|
|
public static double get(String text, char indicator) {
|
|
|
|
String[] split = text.replace(" ", "").toLowerCase().split(":");
|
|
|
|
String character = String.valueOf(indicator);
|
|
|
|
|
|
|
|
for (String part : split) {
|
|
|
|
if (!part.contains(character)) {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
|
|
|
part = part.replace(character, "");
|
|
|
|
|
|
|
|
if (part.equals(FREE_TEXT)) {
|
|
|
|
return FREE;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (NumberUtil.isDouble(part)) {
|
2012-06-25 17:15:10 +02:00
|
|
|
double price = Double.valueOf(part);
|
|
|
|
|
2012-07-26 13:44:29 +02:00
|
|
|
if (price <= 0) {
|
2012-06-25 17:15:10 +02:00
|
|
|
return NO_PRICE;
|
|
|
|
} else {
|
|
|
|
return price;
|
|
|
|
}
|
2012-06-08 15:28:36 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return NO_PRICE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Gets the buy price from te text
|
|
|
|
* @param text Text to check
|
|
|
|
* @return Buy price
|
|
|
|
*/
|
|
|
|
public static double getBuyPrice(String text) {
|
|
|
|
return get(text, 'b');
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Gets the sell price from te text
|
|
|
|
* @param text Text to check
|
|
|
|
* @return Sell price
|
|
|
|
*/
|
|
|
|
public static double getSellPrice(String text) {
|
|
|
|
return get(text, 's');
|
|
|
|
}
|
2012-07-07 19:24:06 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Checks if the string is a valid price
|
|
|
|
* @param text Text to check
|
|
|
|
* @return Is the string a valid price
|
|
|
|
*/
|
|
|
|
public static boolean textIsPrice(String text) {
|
|
|
|
if (NumberUtil.isFloat(text)) {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
return text.trim().equalsIgnoreCase("free");
|
|
|
|
}
|
2012-06-08 15:28:36 +02:00
|
|
|
}
|