Refactor string utils to common class
This commit is contained in:
parent
ccdd54f64a
commit
80e33ba01b
@ -20,7 +20,7 @@ import net.sf.openrocket.simulation.extension.SimulationExtension;
|
||||
import net.sf.openrocket.simulation.extension.SimulationExtensionProvider;
|
||||
import net.sf.openrocket.simulation.extension.impl.JavaCode;
|
||||
import net.sf.openrocket.startup.Application;
|
||||
import net.sf.openrocket.util.StringUtil;
|
||||
import net.sf.openrocket.util.StringUtils;
|
||||
|
||||
import com.google.inject.Key;
|
||||
|
||||
@ -85,7 +85,7 @@ class SingleSimulationHandler extends AbstractElementHandler {
|
||||
}
|
||||
} else if (element.equals("listener") && content.trim().length() > 0) {
|
||||
extensions.add(compatibilityExtension(content.trim()));
|
||||
} else if (element.equals("extension") && !StringUtil.isEmpty(attributes.get("extensionid"))) {
|
||||
} else if (element.equals("extension") && !StringUtils.isEmpty(attributes.get("extensionid"))) {
|
||||
String id = attributes.get("extensionid");
|
||||
SimulationExtension extension = null;
|
||||
Set<SimulationExtensionProvider> extensionProviders = Application.getInjector().getInstance(new Key<Set<SimulationExtensionProvider>>() {
|
||||
|
@ -4,7 +4,7 @@ import net.sf.openrocket.preset.TypedKey;
|
||||
import net.sf.openrocket.preset.TypedPropertyMap;
|
||||
import net.sf.openrocket.unit.Unit;
|
||||
import net.sf.openrocket.unit.UnitGroup;
|
||||
import net.sf.openrocket.util.StringUtil;
|
||||
import net.sf.openrocket.util.StringUtils;
|
||||
|
||||
public class DoubleUnitColumnParser extends BaseUnitColumnParser {
|
||||
|
||||
@ -19,7 +19,7 @@ public class DoubleUnitColumnParser extends BaseUnitColumnParser {
|
||||
@Override
|
||||
protected void doParse(String columnData, String[] data, TypedPropertyMap props) {
|
||||
try {
|
||||
if (StringUtil.isEmpty(columnData)) {
|
||||
if (StringUtils.isEmpty(columnData)) {
|
||||
return;
|
||||
}
|
||||
double value = Double.valueOf(columnData);
|
||||
|
@ -4,7 +4,7 @@ import net.sf.openrocket.database.Databases;
|
||||
import net.sf.openrocket.material.Material;
|
||||
import net.sf.openrocket.preset.TypedKey;
|
||||
import net.sf.openrocket.preset.TypedPropertyMap;
|
||||
import net.sf.openrocket.util.StringUtil;
|
||||
import net.sf.openrocket.util.StringUtils;
|
||||
|
||||
public class LineMaterialColumnParser extends BaseColumnParser {
|
||||
|
||||
@ -22,7 +22,7 @@ public class LineMaterialColumnParser extends BaseColumnParser {
|
||||
@Override
|
||||
protected void doParse(String columnData, String[] data, TypedPropertyMap props) {
|
||||
|
||||
if (StringUtil.isEmpty(columnData)) {
|
||||
if (StringUtils.isEmpty(columnData)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@ package net.sf.openrocket.preset.loader;
|
||||
|
||||
import net.sf.openrocket.preset.ComponentPreset;
|
||||
import net.sf.openrocket.preset.TypedPropertyMap;
|
||||
import net.sf.openrocket.util.StringUtil;
|
||||
import net.sf.openrocket.util.StringUtils;
|
||||
|
||||
/**
|
||||
* Special DoubleUnitColumnParser for Mass column. Here we assume that if a mass of 0 is
|
||||
@ -18,7 +18,7 @@ public class MassColumnParser extends DoubleUnitColumnParser {
|
||||
|
||||
@Override
|
||||
protected void doParse(String columnData, String[] data, TypedPropertyMap props) {
|
||||
if ( StringUtil.isEmpty(columnData) || "?".equals(columnData.trim())) {
|
||||
if ( StringUtils.isEmpty(columnData) || "?".equals(columnData.trim())) {
|
||||
return;
|
||||
}
|
||||
double d = Double.valueOf(columnData);
|
||||
|
@ -5,7 +5,7 @@ import net.sf.openrocket.material.Material;
|
||||
import net.sf.openrocket.preset.ComponentPreset;
|
||||
import net.sf.openrocket.preset.TypedKey;
|
||||
import net.sf.openrocket.preset.TypedPropertyMap;
|
||||
import net.sf.openrocket.util.StringUtil;
|
||||
import net.sf.openrocket.util.StringUtils;
|
||||
|
||||
public class MaterialColumnParser extends BaseColumnParser {
|
||||
|
||||
@ -27,7 +27,7 @@ public class MaterialColumnParser extends BaseColumnParser {
|
||||
@Override
|
||||
protected void doParse(String columnData, String[] data, TypedPropertyMap props) {
|
||||
|
||||
if (StringUtil.isEmpty(columnData)) {
|
||||
if (StringUtils.isEmpty(columnData)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -18,7 +18,7 @@ import net.sf.openrocket.unit.Unit;
|
||||
import net.sf.openrocket.unit.UnitGroup;
|
||||
import net.sf.openrocket.util.ArrayList;
|
||||
import net.sf.openrocket.util.BugException;
|
||||
import net.sf.openrocket.util.StringUtil;
|
||||
import net.sf.openrocket.util.StringUtils;
|
||||
import com.opencsv.CSVReader;
|
||||
|
||||
/**
|
||||
@ -138,7 +138,7 @@ public abstract class RockSimComponentFileLoader {
|
||||
if (data.length == 0) {
|
||||
continue;
|
||||
}
|
||||
if (data.length == 1 && StringUtil.isEmpty(data[0])) {
|
||||
if (data.length == 1 && StringUtils.isEmpty(data[0])) {
|
||||
continue;
|
||||
}
|
||||
parseData(data);
|
||||
|
@ -4,7 +4,7 @@ import net.sf.openrocket.database.Databases;
|
||||
import net.sf.openrocket.material.Material;
|
||||
import net.sf.openrocket.preset.TypedKey;
|
||||
import net.sf.openrocket.preset.TypedPropertyMap;
|
||||
import net.sf.openrocket.util.StringUtil;
|
||||
import net.sf.openrocket.util.StringUtils;
|
||||
|
||||
public class SurfaceMaterialColumnParser extends BaseColumnParser {
|
||||
|
||||
@ -22,7 +22,7 @@ public class SurfaceMaterialColumnParser extends BaseColumnParser {
|
||||
@Override
|
||||
protected void doParse(String columnData, String[] data, TypedPropertyMap props) {
|
||||
|
||||
if (StringUtil.isEmpty(columnData)) {
|
||||
if (StringUtils.isEmpty(columnData)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -10,7 +10,7 @@ import org.slf4j.LoggerFactory;
|
||||
import net.sf.openrocket.l10n.Translator;
|
||||
import net.sf.openrocket.startup.Application;
|
||||
import net.sf.openrocket.unit.UnitGroup;
|
||||
import net.sf.openrocket.util.StringUtil;
|
||||
import net.sf.openrocket.util.StringUtils;
|
||||
|
||||
/**
|
||||
* A class defining a storable simulation variable type. This class defined numerous ready
|
||||
@ -272,7 +272,7 @@ public class FlightDataType implements Comparable<FlightDataType> {
|
||||
// found it from symbol
|
||||
|
||||
// if name was not given (empty string), can use the one we found
|
||||
if ( s == null || StringUtil.isEmpty(s)){
|
||||
if ( s == null || StringUtils.isEmpty(s)){
|
||||
s = type.getName();
|
||||
}
|
||||
if ( u == null ){
|
||||
|
@ -11,7 +11,7 @@ import net.sf.openrocket.simulation.SimulationStatus;
|
||||
import net.sf.openrocket.unit.FixedUnitGroup;
|
||||
import net.sf.openrocket.unit.UnitGroup;
|
||||
import net.sf.openrocket.util.ArrayList;
|
||||
import net.sf.openrocket.util.StringUtil;
|
||||
import net.sf.openrocket.util.StringUtils;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@ -227,7 +227,7 @@ public class CustomExpression implements Cloneable {
|
||||
}
|
||||
|
||||
public boolean checkSymbol() {
|
||||
if (StringUtil.isEmpty(symbol)) {
|
||||
if (StringUtils.isEmpty(symbol)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -254,7 +254,7 @@ public class CustomExpression implements Cloneable {
|
||||
}
|
||||
|
||||
public boolean checkName() {
|
||||
if (StringUtil.isEmpty(name)) {
|
||||
if (StringUtils.isEmpty(name)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -304,7 +304,7 @@ public class CustomExpression implements Cloneable {
|
||||
* building the expression.
|
||||
*/
|
||||
public boolean checkExpression() {
|
||||
if (StringUtil.isEmpty(expression)) {
|
||||
if (StringUtils.isEmpty(expression)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -14,13 +14,12 @@ import de.congrace.exp4j.ExpressionBuilder;
|
||||
import de.congrace.exp4j.Variable;
|
||||
import net.sf.openrocket.document.OpenRocketDocument;
|
||||
import net.sf.openrocket.logging.Markers;
|
||||
import net.sf.openrocket.simulation.customexpression.CustomExpression;
|
||||
import net.sf.openrocket.simulation.FlightDataType;
|
||||
import net.sf.openrocket.simulation.SimulationStatus;
|
||||
import net.sf.openrocket.util.ArrayUtils;
|
||||
import net.sf.openrocket.util.LinearInterpolator;
|
||||
import net.sf.openrocket.util.MathUtil;
|
||||
import net.sf.openrocket.util.StringUtil;
|
||||
import net.sf.openrocket.util.StringUtils;
|
||||
|
||||
public class RangeExpression extends CustomExpression {
|
||||
private static final Logger log = LoggerFactory.getLogger(RangeExpression.class);
|
||||
@ -30,10 +29,10 @@ public class RangeExpression extends CustomExpression {
|
||||
public RangeExpression(OpenRocketDocument doc, String startTime, String endTime, String variableType) {
|
||||
super(doc);
|
||||
|
||||
if (StringUtil.isEmpty(startTime)){
|
||||
if (StringUtils.isEmpty(startTime)){
|
||||
startTime = "0";
|
||||
}
|
||||
if (StringUtil.isEmpty(endTime)){
|
||||
if (StringUtils.isEmpty(endTime)){
|
||||
endTime = "t";
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,7 @@ import net.sf.openrocket.simulation.SimulationConditions;
|
||||
import net.sf.openrocket.simulation.exception.SimulationException;
|
||||
import net.sf.openrocket.simulation.extension.AbstractSimulationExtension;
|
||||
import net.sf.openrocket.simulation.listeners.SimulationListener;
|
||||
import net.sf.openrocket.util.StringUtil;
|
||||
import net.sf.openrocket.util.StringUtils;
|
||||
|
||||
import com.google.inject.Inject;
|
||||
import com.google.inject.Injector;
|
||||
@ -19,7 +19,7 @@ public class JavaCode extends AbstractSimulationExtension {
|
||||
public void initialize(SimulationConditions conditions) throws SimulationException {
|
||||
String className = getClassName();
|
||||
try {
|
||||
if (!StringUtil.isEmpty(className)) {
|
||||
if (!StringUtils.isEmpty(className)) {
|
||||
Class<?> clazz = Class.forName(className);
|
||||
if (!SimulationListener.class.isAssignableFrom(clazz)) {
|
||||
throw new SimulationException("Class " + className + " does not implement SimulationListener");
|
||||
@ -40,7 +40,7 @@ public class JavaCode extends AbstractSimulationExtension {
|
||||
public String getName() {
|
||||
String name = trans.get("SimulationExtension.javacode.name") + ": ";
|
||||
String className = getClassName();
|
||||
if (!StringUtil.isEmpty(className)) {
|
||||
if (!StringUtils.isEmpty(className)) {
|
||||
name = name + className;
|
||||
} else {
|
||||
name = name + trans.get("SimulationExtension.javacode.name.none");
|
||||
|
@ -18,7 +18,7 @@ import java.util.regex.Pattern;
|
||||
|
||||
import net.sf.openrocket.rocketcomponent.FlightConfiguration;
|
||||
import net.sf.openrocket.rocketcomponent.Rocket;
|
||||
import net.sf.openrocket.util.StringUtil;
|
||||
import net.sf.openrocket.util.StringUtils;
|
||||
|
||||
|
||||
/**
|
||||
@ -672,7 +672,7 @@ public class UnitGroup {
|
||||
throw new NumberFormatException("string did not match required pattern");
|
||||
}
|
||||
|
||||
double value = StringUtil.convertToDouble(matcher.group(1));
|
||||
double value = StringUtils.convertToDouble(matcher.group(1));
|
||||
String unit = matcher.group(2).trim();
|
||||
|
||||
if (unit.equals("")) {
|
||||
|
@ -1,6 +1,33 @@
|
||||
package net.sf.openrocket.util;
|
||||
|
||||
public class StringUtil {
|
||||
import java.util.List;
|
||||
|
||||
public class StringUtils {
|
||||
|
||||
public static String join(String sep, Object[] values) {
|
||||
if ( values == null || values.length == 0 ) {
|
||||
return "";
|
||||
}
|
||||
StringBuilder value = new StringBuilder();
|
||||
for( Object v : values ) {
|
||||
if( value.length() > 0 ) {
|
||||
value.append(sep);
|
||||
}
|
||||
value.append(String.valueOf(v));
|
||||
}
|
||||
return value.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Join starting with a list of strings rather than an array
|
||||
* @param sep separator
|
||||
* @param listValues list of values
|
||||
* @return joined string
|
||||
*/
|
||||
public static String join(String sep, List<String> listValues) {
|
||||
String[] values = listValues.toArray(new String[0]);
|
||||
return join(sep, values);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the argument is null or empty.
|
@ -8,40 +8,40 @@ import static org.junit.Assert.assertEquals;
|
||||
|
||||
/**
|
||||
* A class that tests
|
||||
* {@link net.sf.openrocket.util.StringUtil}.
|
||||
* {@link StringUtils}.
|
||||
*/
|
||||
public class StringUtilTest {
|
||||
@Test
|
||||
public void testStrings() {
|
||||
assertTrue(StringUtil.isEmpty(""));
|
||||
assertTrue(StringUtil.isEmpty(new StringBuilder().toString())); // ""
|
||||
assertTrue(StringUtil.isEmpty(" "));
|
||||
assertTrue(StringUtil.isEmpty(" "));
|
||||
assertTrue(StringUtil.isEmpty(" "));
|
||||
assertTrue(StringUtil.isEmpty(null));
|
||||
assertTrue(StringUtils.isEmpty(""));
|
||||
assertTrue(StringUtils.isEmpty(new StringBuilder().toString())); // ""
|
||||
assertTrue(StringUtils.isEmpty(" "));
|
||||
assertTrue(StringUtils.isEmpty(" "));
|
||||
assertTrue(StringUtils.isEmpty(" "));
|
||||
assertTrue(StringUtils.isEmpty(null));
|
||||
|
||||
assertFalse(StringUtil.isEmpty("A"));
|
||||
assertFalse(StringUtil.isEmpty(" . "));
|
||||
assertFalse(StringUtils.isEmpty("A"));
|
||||
assertFalse(StringUtils.isEmpty(" . "));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConvertToDouble() {
|
||||
assertEquals(0.2, StringUtil.convertToDouble(".2"), MathUtil.EPSILON);
|
||||
assertEquals(0.2, StringUtil.convertToDouble(",2"), MathUtil.EPSILON);
|
||||
assertEquals(1, StringUtil.convertToDouble("1,"), MathUtil.EPSILON);
|
||||
assertEquals(2, StringUtil.convertToDouble("2."), MathUtil.EPSILON);
|
||||
assertEquals(1, StringUtil.convertToDouble("1"), MathUtil.EPSILON);
|
||||
assertEquals(1.52, StringUtil.convertToDouble("1.52"), MathUtil.EPSILON);
|
||||
assertEquals(1.52, StringUtil.convertToDouble("1,52"), MathUtil.EPSILON);
|
||||
assertEquals(1.5, StringUtil.convertToDouble("1.500"), MathUtil.EPSILON);
|
||||
assertEquals(1.5, StringUtil.convertToDouble("1,500"), MathUtil.EPSILON);
|
||||
assertEquals(1500.61, StringUtil.convertToDouble("1.500,61"), MathUtil.EPSILON);
|
||||
assertEquals(1500.61, StringUtil.convertToDouble("1,500.61"), MathUtil.EPSILON);
|
||||
assertEquals(1500.2, StringUtil.convertToDouble("1,500,200"), MathUtil.EPSILON);
|
||||
assertEquals(1500.2, StringUtil.convertToDouble("1.500.200"), MathUtil.EPSILON);
|
||||
assertEquals(1500200.23, StringUtil.convertToDouble("1500200.23"), MathUtil.EPSILON);
|
||||
assertEquals(1500200.23, StringUtil.convertToDouble("1500200,23"), MathUtil.EPSILON);
|
||||
assertEquals(1500200.23, StringUtil.convertToDouble("1,500,200.23"), MathUtil.EPSILON);
|
||||
assertEquals(1500200.23, StringUtil.convertToDouble("1.500.200,23"), MathUtil.EPSILON);
|
||||
assertEquals(0.2, StringUtils.convertToDouble(".2"), MathUtil.EPSILON);
|
||||
assertEquals(0.2, StringUtils.convertToDouble(",2"), MathUtil.EPSILON);
|
||||
assertEquals(1, StringUtils.convertToDouble("1,"), MathUtil.EPSILON);
|
||||
assertEquals(2, StringUtils.convertToDouble("2."), MathUtil.EPSILON);
|
||||
assertEquals(1, StringUtils.convertToDouble("1"), MathUtil.EPSILON);
|
||||
assertEquals(1.52, StringUtils.convertToDouble("1.52"), MathUtil.EPSILON);
|
||||
assertEquals(1.52, StringUtils.convertToDouble("1,52"), MathUtil.EPSILON);
|
||||
assertEquals(1.5, StringUtils.convertToDouble("1.500"), MathUtil.EPSILON);
|
||||
assertEquals(1.5, StringUtils.convertToDouble("1,500"), MathUtil.EPSILON);
|
||||
assertEquals(1500.61, StringUtils.convertToDouble("1.500,61"), MathUtil.EPSILON);
|
||||
assertEquals(1500.61, StringUtils.convertToDouble("1,500.61"), MathUtil.EPSILON);
|
||||
assertEquals(1500.2, StringUtils.convertToDouble("1,500,200"), MathUtil.EPSILON);
|
||||
assertEquals(1500.2, StringUtils.convertToDouble("1.500.200"), MathUtil.EPSILON);
|
||||
assertEquals(1500200.23, StringUtils.convertToDouble("1500200.23"), MathUtil.EPSILON);
|
||||
assertEquals(1500200.23, StringUtils.convertToDouble("1500200,23"), MathUtil.EPSILON);
|
||||
assertEquals(1500200.23, StringUtils.convertToDouble("1,500,200.23"), MathUtil.EPSILON);
|
||||
assertEquals(1500200.23, StringUtils.convertToDouble("1.500.200,23"), MathUtil.EPSILON);
|
||||
}
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ import java.util.HashMap;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.JTable;
|
||||
|
||||
import net.sf.openrocket.utils.StringUtils;
|
||||
import net.sf.openrocket.util.StringUtils;
|
||||
import org.apache.commons.text.StringEscapeUtils;
|
||||
|
||||
import net.sf.openrocket.aerodynamics.Warning;
|
||||
|
@ -16,6 +16,7 @@ import javax.swing.JScrollPane;
|
||||
import javax.swing.JTextArea;
|
||||
import javax.swing.SwingUtilities;
|
||||
|
||||
import net.sf.openrocket.util.StringUtils;
|
||||
import org.jfree.chart.ChartFactory;
|
||||
import org.jfree.chart.ChartPanel;
|
||||
import org.jfree.chart.JFreeChart;
|
||||
@ -33,7 +34,6 @@ import net.sf.openrocket.l10n.Translator;
|
||||
import net.sf.openrocket.motor.ThrustCurveMotor;
|
||||
import net.sf.openrocket.startup.Application;
|
||||
import net.sf.openrocket.unit.UnitGroup;
|
||||
import net.sf.openrocket.utils.StringUtils;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
class MotorInformationPanel extends JPanel {
|
||||
|
@ -1,33 +0,0 @@
|
||||
package net.sf.openrocket.utils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class StringUtils {
|
||||
|
||||
public static String join(String sep, Object[] values) {
|
||||
if ( values == null || values.length == 0 ) {
|
||||
return "";
|
||||
}
|
||||
StringBuilder value = new StringBuilder();
|
||||
for( Object v : values ) {
|
||||
if( value.length() > 0 ) {
|
||||
value.append(sep);
|
||||
}
|
||||
value.append(String.valueOf(v));
|
||||
}
|
||||
return value.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Join starting with a list of strings rather than an array
|
||||
* @param sep
|
||||
* @param listValues
|
||||
* @return
|
||||
*/
|
||||
public static String join(String sep, List<String> listValues) {
|
||||
String[] values = listValues.toArray(new String[listValues.size()]);
|
||||
return join(sep, values);
|
||||
}
|
||||
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user