Skip to content

Commit

Permalink
Values, JSONDate - add more converters
Browse files Browse the repository at this point in the history
  • Loading branch information
teosarca committed Nov 13, 2017
1 parent 0958391 commit b7d3e4d
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 10 deletions.
33 changes: 30 additions & 3 deletions src/main/java/de/metas/ui/web/window/datatypes/Values.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import de.metas.ui.web.window.datatypes.json.JSONLookupValue;
import de.metas.ui.web.window.datatypes.json.JSONLookupValuesList;
import de.metas.ui.web.window.datatypes.json.JSONRange;
import lombok.experimental.UtilityClass;

/*
* #%L
Expand Down Expand Up @@ -41,6 +42,7 @@
* @author metas-dev <dev@metasfresh.com>
*
*/
@UtilityClass
public final class Values
{
public static final Object valueToJsonObject(final Object value)
Expand All @@ -66,7 +68,7 @@ else if (value instanceof java.util.Date)
final java.util.Date valueDate = (java.util.Date)value;
return JSONDate.toJson(valueDate);
}
else if(value instanceof DateRangeValue)
else if (value instanceof DateRangeValue)
{
final DateRangeValue dateRange = (DateRangeValue)value;
return JSONRange.of(dateRange);
Expand Down Expand Up @@ -109,8 +111,33 @@ else if (value instanceof Collection)
}
}

private Values()
public static BigDecimal toBigDecimal(final Object value)
{
throw new UnsupportedOperationException();
if (value == null)
{
return null;
}
else if (value instanceof BigDecimal)
{
return (BigDecimal)value;
}
else
{
final String valueStr = value.toString().trim();
if (valueStr.isEmpty())
{
return null;
}
return new BigDecimal(valueStr);
}
}

public static int toInt(final Object value, final int defaultValueIfNull)
{
if (value == null)
{
return defaultValueIfNull;
}
return Integer.parseInt(value.toString());
}
}
10 changes: 10 additions & 0 deletions src/main/java/de/metas/ui/web/window/datatypes/json/JSONDate.java
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,16 @@ public static java.util.Date fromJson(final String valueStr, final DocumentField
return fromDateTimeString(valueStr);
}
}

public static java.util.Date fromObject(final Object value, final DocumentFieldWidgetType widgetType)
{
if (value == null)
{
return null;
}
final String valueStr = value.toString().trim();
return JSONDate.fromJson(valueStr, DocumentFieldWidgetType.DateTime);
}

public static java.util.Date fromTimestamp(final Timestamp ts)
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package de.metas.ui.web.window.datatypes.json;

import java.math.BigDecimal;
import java.util.List;

import org.adempiere.exceptions.AdempiereException;
Expand All @@ -12,6 +13,8 @@
import com.google.common.collect.ImmutableList;

import de.metas.ui.web.window.datatypes.DocumentIdsSelection;
import de.metas.ui.web.window.datatypes.Values;
import de.metas.ui.web.window.descriptor.DocumentFieldWidgetType;
import io.swagger.annotations.ApiModel;
import lombok.Value;

Expand Down Expand Up @@ -39,9 +42,9 @@

/**
* Document changed event.
*
*
* Event sent by frontend when the user wants to change some fields.
*
*
* @author metas-dev <dev@metasfresh.com>
*
*/
Expand Down Expand Up @@ -91,11 +94,7 @@ public Boolean getValueAsBoolean(final Boolean defaultValue)

public int getValueAsInteger(final int defaultValueIfNull)
{
if (value == null)
{
return defaultValueIfNull;
}
return Integer.parseInt(value.toString());
return Values.toInt(value, defaultValueIfNull);
}

public List<Integer> getValueAsIntegersList()
Expand All @@ -121,4 +120,14 @@ else if (value instanceof String)
}
}

public BigDecimal getValueAsBigDecimal()
{
return Values.toBigDecimal(value);
}

public java.util.Date getValueAsDateTime()
{
return JSONDate.fromObject(value, DocumentFieldWidgetType.DateTime);
}

}

0 comments on commit b7d3e4d

Please sign in to comment.