getLong replacement (temp) plus some api doc updates

This commit is contained in:
John Woodlock
2012-05-28 02:27:57 +10:00
parent 47749b2f45
commit cc8bd8ba5e
7 changed files with 150 additions and 95 deletions
@@ -434,6 +434,8 @@ public class ReadExtraDataAndReportingServiceImpl implements
rsch.setColumnDisplayType(rsmd.getString("display_type"));
allowedListId = rsmd.getInt("allowed_list_id");
if (allowedListId != null) {
logger.info("allowedListId != null: Column: " + rsch.getColumnName());
sql = "select v.`name` from stretchydata_allowed_value v where allowed_list_id = "
+ allowedListId + " order by id";
ResultSet rsValues = db_statement2.executeQuery(sql);
@@ -7,8 +7,10 @@ import org.joda.time.LocalDate;
public interface ApiDataConversionService {
LocalDate convertFrom(String dateAsString, String parameterName, String dateFormat);
LocalDate convertFrom(String dateAsString, String parameterName,
String dateFormat);
BigDecimal convertFrom(String principalFormatted, String parameterName, Locale clientApplicationLocale);
BigDecimal convertFrom(String principalFormatted, String parameterName,
Locale clientApplicationLocale);
}
@@ -19,45 +19,69 @@ import org.springframework.stereotype.Service;
public class ApiDataConversionServiceImpl implements ApiDataConversionService {
@Override
public LocalDate convertFrom(String dateAsString, String parameterName, String dateFormat) {
public LocalDate convertFrom(String dateAsString, String parameterName,
String dateFormat) {
LocalDate eventLocalDate = null;
if (StringUtils.isNotBlank(dateAsString)) {
try {
Locale locale = LocaleContextHolder.getLocale();
eventLocalDate = DateTimeFormat.forPattern(dateFormat).withLocale(locale).parseLocalDate(dateAsString.toLowerCase(locale));
eventLocalDate = DateTimeFormat.forPattern(dateFormat)
.withLocale(locale)
.parseLocalDate(dateAsString.toLowerCase(locale));
} catch (IllegalArgumentException e) {
List<ApiParameterError> dataValidationErrors = new ArrayList<ApiParameterError>();
ApiParameterError error = ApiParameterError.parameterError("validation.msg.invalid.date.format", "The parameter " + parameterName + " is invalid based on the dateFormat provided:" + dateFormat, parameterName, dateAsString, dateFormat);
ApiParameterError error = ApiParameterError
.parameterError(
"validation.msg.invalid.date.format",
"The parameter "
+ parameterName
+ " is invalid based on the dateFormat provided:"
+ dateFormat, parameterName,
dateAsString, dateFormat);
dataValidationErrors.add(error);
throw new PlatformApiDataValidationException("validation.msg.validation.errors.exist", "Validation errors exist.", dataValidationErrors);
throw new PlatformApiDataValidationException(
"validation.msg.validation.errors.exist",
"Validation errors exist.", dataValidationErrors);
}
}
return eventLocalDate;
}
@Override
public BigDecimal convertFrom(String numericalValueFormatted, String parameterName, Locale clientApplicationLocale) {
public BigDecimal convertFrom(String numericalValueFormatted,
String parameterName, Locale clientApplicationLocale) {
try {
BigDecimal number = null;
if (StringUtils.isNotBlank(numericalValueFormatted)) {
String sourceWithoutSpaces = numericalValueFormatted.replaceAll(" ", "");
NumberFormat format = NumberFormat.getNumberInstance(clientApplicationLocale);
String sourceWithoutSpaces = numericalValueFormatted
.replaceAll(" ", "");
NumberFormat format = NumberFormat
.getNumberInstance(clientApplicationLocale);
Number parsedNumber = format.parse(sourceWithoutSpaces);
number = BigDecimal.valueOf(Double.valueOf(parsedNumber.doubleValue()));
number = BigDecimal.valueOf(Double.valueOf(parsedNumber
.doubleValue()));
}
return number;
} catch (ParseException e) {
List<ApiParameterError> dataValidationErrors = new ArrayList<ApiParameterError>();
ApiParameterError error = ApiParameterError.parameterError("validation.msg.invalid.number.format", "The parameter " + parameterName + " is invalid for provided locale" + clientApplicationLocale.toString() + ".", parameterName, numericalValueFormatted, clientApplicationLocale);
ApiParameterError error = ApiParameterError.parameterError(
"validation.msg.invalid.number.format", "The parameter "
+ parameterName + " is invalid for provided locale"
+ clientApplicationLocale.toString() + ".",
parameterName, numericalValueFormatted,
clientApplicationLocale);
dataValidationErrors.add(error);
throw new PlatformApiDataValidationException("validation.msg.validation.errors.exist", "Validation errors exist.", dataValidationErrors);
throw new PlatformApiDataValidationException(
"validation.msg.validation.errors.exist",
"Validation errors exist.", dataValidationErrors);
}
}
}
@@ -32,7 +32,7 @@ public class OfficeReadPlatformServiceImpl implements OfficeReadPlatformService
this.context = context;
this.jdbcTemplate = new SimpleJdbcTemplate(dataSource);
}
private static final class OfficeMapper implements RowMapper<OfficeData> {
public String officeSchema() {
@@ -49,7 +49,9 @@ public class OfficeReadPlatformServiceImpl implements OfficeReadPlatformService
String externalId = rs.getString("externalId");
LocalDate openingDate = new LocalDate(rs.getDate("openingDate"));
String hierarchy = rs.getString("hierarchy");
Long parentId = rs.getLong("parentId");
Long parentId = getRSLong(rs.getString("parentId"), rs.getLong("parentId"));
String parentName = rs.getString("parentName");
return new OfficeData(id, name, externalId, openingDate, hierarchy,
@@ -165,4 +167,10 @@ public class OfficeReadPlatformServiceImpl implements OfficeReadPlatformService
}
public static Long getRSLong(String stringVal, Long longVal) {
if (stringVal == null)
return null;
return longVal;
}
}