You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2020/01/17 01:11:52 UTC
[isis] 16/36: ISIS-2264: moves configuredFormat (also propertyType)
to subclasses of ValueSemanticsProviderAbstractTemporal
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
commit f9f3be9cc7ed66ca2d8c98efee3c25288eaebe6d
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jan 17 00:03:04 2020 +0100
ISIS-2264: moves configuredFormat (also propertyType) to subclasses of ValueSemanticsProviderAbstractTemporal
---
.../DateAndTimeValueSemanticsProviderAbstract.java | 20 ++++++++++++++++++-
.../ValueSemanticsProviderAbstractTemporal.java | 23 ++++++++++------------
.../date/DateValueSemanticsProviderAbstract.java | 20 ++++++++++++++++++-
...JodaDateTimeValueSemanticsProviderAbstract.java | 18 ++++++++++++++++-
.../time/TimeValueSemanticsProviderAbstract.java | 20 ++++++++++++++++++-
.../TimeStampValueSemanticsProviderAbstract.java | 20 ++++++++++++++++++-
6 files changed, 103 insertions(+), 18 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/DateAndTimeValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/DateAndTimeValueSemanticsProviderAbstract.java
index b42dc5f..adc10ad 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/DateAndTimeValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/DateAndTimeValueSemanticsProviderAbstract.java
@@ -30,6 +30,9 @@ import org.apache.isis.core.commons.internal.collections._Maps;
import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import lombok.Getter;
+import lombok.Setter;
+
public abstract class DateAndTimeValueSemanticsProviderAbstract<T>
extends ValueSemanticsProviderAbstractTemporal<T> {
@@ -44,9 +47,18 @@ extends ValueSemanticsProviderAbstractTemporal<T> {
private static final Object DEFAULT_VALUE = null; // no default
private static final int TYPICAL_LENGTH = 18;
+ @Getter @Setter
+ private String configuredFormat;
+
+
@SuppressWarnings("unchecked")
public DateAndTimeValueSemanticsProviderAbstract(final FacetHolder holder, final Class<T> adaptedClass, final Immutability immutability, final EqualByContent equalByContent) {
- super(FormatIdentifier.DATETIME, holder, adaptedClass, TYPICAL_LENGTH, immutability, equalByContent, (T) DEFAULT_VALUE);
+ super(FormatIdentifier.DATETIME, FormatIdentifier.DATETIME.name().toLowerCase(), holder, adaptedClass, TYPICAL_LENGTH, immutability, equalByContent, (T) DEFAULT_VALUE);
+
+ configuredFormat = getConfiguration()
+ .getValue().getFormat().getOrDefault(FormatIdentifier.DATETIME.name().toLowerCase(), defaultFormat()).toLowerCase().trim();
+
+ buildFormat(configuredFormat);
final String formatRequired = getConfiguration()
.getValue().getFormat().getOrDefault(FormatIdentifier.DATETIME.name().toLowerCase(), null);
@@ -113,4 +125,10 @@ extends ValueSemanticsProviderAbstractTemporal<T> {
return formats;
}
+ @Override
+ public void appendAttributesTo(Map<String, Object> attributeMap) {
+ super.appendAttributesTo(attributeMap);
+ attributeMap.put("configuredFormat", configuredFormat);
+ }
+
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTemporal.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTemporal.java
index 8c47763..9db345d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTemporal.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTemporal.java
@@ -95,29 +95,24 @@ implements DateValueFacet {
private final DateFormat encodingFormat;
protected DateFormat format;
- private String configuredFormat;
private String propertyType;
/**
* Uses {@link #type()} as the facet type.
*/
- public ValueSemanticsProviderAbstractTemporal(final FormatIdentifier formatIdentifier, final FacetHolder holder, final Class<T> adaptedClass, final int typicalLength, final Immutability immutability, final EqualByContent equalByContent, final T defaultValue) {
- this(formatIdentifier, type(), holder, adaptedClass, typicalLength, immutability, equalByContent, defaultValue);
+ public ValueSemanticsProviderAbstractTemporal(final FormatIdentifier formatIdentifier, String propertyType, final FacetHolder holder, final Class<T> adaptedClass, final int typicalLength, final Immutability immutability, final EqualByContent equalByContent, final T defaultValue) {
+ this(formatIdentifier, propertyType, type(), holder, adaptedClass, typicalLength, immutability, equalByContent, defaultValue);
}
/**
* Allows the specific facet subclass to be specified (rather than use
* {@link #type()}.
*/
- public ValueSemanticsProviderAbstractTemporal(final FormatIdentifier formatIdentifier, final Class<? extends Facet> facetType, final FacetHolder holder, final Class<T> adaptedClass, final int typicalLength, final Immutability immutability, final EqualByContent equalByContent, final T defaultValue) {
+ public ValueSemanticsProviderAbstractTemporal(final FormatIdentifier formatIdentifier, String propertyType, final Class<? extends Facet> facetType, final FacetHolder holder, final Class<T> adaptedClass, final int typicalLength, final Immutability immutability, final EqualByContent equalByContent, final T defaultValue) {
super(facetType, holder, adaptedClass, typicalLength, -1, immutability, equalByContent, defaultValue);
configureFormats();
- this.propertyType = formatIdentifier.name().toLowerCase();
- configuredFormat = getConfiguration()
- .getValue().getFormat().getOrDefault(formatIdentifier.name().toLowerCase(), defaultFormat()).toLowerCase().trim();
-
- buildFormat(configuredFormat);
+ this.propertyType = propertyType;
encodingFormat = formats().get(ISO_ENCODING_FORMAT);
}
@@ -136,15 +131,18 @@ implements DateValueFacet {
protected void buildDefaultFormatIfRequired() {
final Map<String, String> map = FORMATS.get();
final String currentlyConfiguredFormat = map.get(propertyType);
- if (currentlyConfiguredFormat == null || configuredFormat.equals(currentlyConfiguredFormat)) {
+ if (currentlyConfiguredFormat == null || getConfiguredFormat().equals(currentlyConfiguredFormat)) {
return;
}
// (re)create format
- configuredFormat = currentlyConfiguredFormat;
- buildFormat(configuredFormat);
+ setConfiguredFormat(currentlyConfiguredFormat);
+ buildFormat(getConfiguredFormat());
}
+ protected abstract String getConfiguredFormat();
+ protected abstract void setConfiguredFormat(final String configuredFormat);
+
protected void buildFormat(final String configuredFormat) {
final Map<String, DateFormat> formats = formats();
format = formats.get(configuredFormat);
@@ -367,7 +365,6 @@ implements DateValueFacet {
@Override public void appendAttributesTo(final Map<String, Object> attributeMap) {
super.appendAttributesTo(attributeMap);
- attributeMap.put("configuredFormat", configuredFormat);
attributeMap.put("propertyType", propertyType);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueSemanticsProviderAbstract.java
index de706b1..174122e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueSemanticsProviderAbstract.java
@@ -31,6 +31,9 @@ import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.value.ValueSemanticsProviderAbstractTemporal;
+import lombok.Getter;
+import lombok.Setter;
+
public abstract class DateValueSemanticsProviderAbstract<T> extends ValueSemanticsProviderAbstractTemporal<T> {
private static Map<String, DateFormat> formats = _Maps.newHashMap();
@@ -41,8 +44,16 @@ public abstract class DateValueSemanticsProviderAbstract<T> extends ValueSemanti
formats.put("medium", DateFormat.getDateInstance(DateFormat.MEDIUM));
}
+ @Getter @Setter
+ private String configuredFormat;
+
public DateValueSemanticsProviderAbstract(final FacetHolder holder, final Class<T> adaptedClass, final Immutability immutability, final EqualByContent equalByContent, final T defaultValue) {
- super(FormatIdentifier.DATE, holder, adaptedClass, 12, immutability, equalByContent, defaultValue);
+ super(FormatIdentifier.DATE, FormatIdentifier.DATE.name().toLowerCase(), holder, adaptedClass, 12, immutability, equalByContent, defaultValue);
+
+ configuredFormat = getConfiguration()
+ .getValue().getFormat().getOrDefault(FormatIdentifier.DATE.name().toLowerCase(), defaultFormat()).toLowerCase().trim();
+
+ buildFormat(configuredFormat);
final String formatRequired = getConfiguration().getValue().getFormat().getOrDefault(FormatIdentifier.DATE.name().toLowerCase(), null);
@@ -51,6 +62,8 @@ public abstract class DateValueSemanticsProviderAbstract<T> extends ValueSemanti
} else {
setMask(formatRequired); //TODO fails when using format names eg 'medium'
}
+
+
}
// //////////////////////////////////////////////////////////////////
@@ -117,4 +130,9 @@ public abstract class DateValueSemanticsProviderAbstract<T> extends ValueSemanti
return formats;
}
+ @Override
+ public void appendAttributesTo(Map<String, Object> attributeMap) {
+ super.appendAttributesTo(attributeMap);
+ attributeMap.put("configuredFormat", configuredFormat);
+ }
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejoda/JodaDateTimeValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejoda/JodaDateTimeValueSemanticsProviderAbstract.java
index bb016bd..513008f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejoda/JodaDateTimeValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejoda/JodaDateTimeValueSemanticsProviderAbstract.java
@@ -31,6 +31,9 @@ import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.value.ValueSemanticsProviderAbstractTemporal;
+import lombok.Getter;
+import lombok.Setter;
+
public abstract class JodaDateTimeValueSemanticsProviderAbstract<T> extends ValueSemanticsProviderAbstractTemporal<T> {
private static final Map<String, DateFormat> FORMATS = _Maps.newHashMap();
@@ -41,8 +44,16 @@ public abstract class JodaDateTimeValueSemanticsProviderAbstract<T> extends Valu
FORMATS.put("medium", DateFormat.getDateInstance(DateFormat.MEDIUM));
}
+ @Getter @Setter
+ private String configuredFormat;
+
public JodaDateTimeValueSemanticsProviderAbstract(final FacetHolder holder, final Class<T> adaptedClass, final T defaultValue) {
- super(FormatIdentifier.DATE, holder, adaptedClass, 12, Immutability.IMMUTABLE, EqualByContent.HONOURED, defaultValue);
+ super(FormatIdentifier.DATE, FormatIdentifier.DATE.name().toLowerCase(), holder, adaptedClass, 12, Immutability.IMMUTABLE, EqualByContent.HONOURED, defaultValue);
+
+ configuredFormat = getConfiguration()
+ .getValue().getFormat().getOrDefault(FormatIdentifier.DATE.name().toLowerCase(), defaultFormat()).toLowerCase().trim();
+
+ buildFormat(configuredFormat);
String formatRequired = getConfiguration()
.getValue().getFormat().getOrDefault(FormatIdentifier.DATE.name().toLowerCase(), null);
@@ -118,4 +129,9 @@ public abstract class JodaDateTimeValueSemanticsProviderAbstract<T> extends Valu
return formats;
}
+ @Override
+ public void appendAttributesTo(Map<String, Object> attributeMap) {
+ super.appendAttributesTo(attributeMap);
+ attributeMap.put("configuredFormat", configuredFormat);
+ }
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/time/TimeValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/time/TimeValueSemanticsProviderAbstract.java
index 1338340..5fc3d67 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/time/TimeValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/time/TimeValueSemanticsProviderAbstract.java
@@ -30,6 +30,9 @@ import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.value.ValueSemanticsProviderAbstractTemporal;
+import lombok.Getter;
+import lombok.Setter;
+
public abstract class TimeValueSemanticsProviderAbstract<T>
extends ValueSemanticsProviderAbstractTemporal<T> {
@@ -41,9 +44,17 @@ extends ValueSemanticsProviderAbstractTemporal<T> {
formats.put("short", DateFormat.getTimeInstance(DateFormat.SHORT));
}
+ @Getter @Setter
+ private String configuredFormat;
+
@SuppressWarnings("unchecked")
public TimeValueSemanticsProviderAbstract(final FacetHolder holder, final Class<T> adaptedClass) {
- super(FormatIdentifier.TIME, holder, adaptedClass, TYPICAL_LENGTH, Immutability.NOT_IMMUTABLE, EqualByContent.NOT_HONOURED, (T) DEFAULT_VALUE);
+ super(FormatIdentifier.TIME, FormatIdentifier.TIME.name().toLowerCase(), holder, adaptedClass, TYPICAL_LENGTH, Immutability.NOT_IMMUTABLE, EqualByContent.NOT_HONOURED, (T) DEFAULT_VALUE);
+
+ configuredFormat = getConfiguration()
+ .getValue().getFormat().getOrDefault(FormatIdentifier.TIME.name().toLowerCase(), defaultFormat()).toLowerCase().trim();
+
+ buildFormat(configuredFormat);
final String formatRequired = getConfiguration()
.getValue().getFormat().getOrDefault(FormatIdentifier.TIME.name().toLowerCase(), null);
@@ -108,4 +119,11 @@ extends ValueSemanticsProviderAbstractTemporal<T> {
return formats;
}
+
+ @Override
+ public void appendAttributesTo(Map<String, Object> attributeMap) {
+ super.appendAttributesTo(attributeMap);
+ attributeMap.put("configuredFormat", configuredFormat);
+ }
+
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/TimeStampValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/TimeStampValueSemanticsProviderAbstract.java
index 783f741..af34f1b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/TimeStampValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/TimeStampValueSemanticsProviderAbstract.java
@@ -30,6 +30,9 @@ import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.value.ValueSemanticsProviderAbstractTemporal;
+import lombok.Getter;
+import lombok.Setter;
+
abstract class TimeStampValueSemanticsProviderAbstract<T> extends ValueSemanticsProviderAbstractTemporal<T> {
private static final Object DEFAULT_VALUE = null; // no default
@@ -40,9 +43,17 @@ abstract class TimeStampValueSemanticsProviderAbstract<T> extends ValueSemantics
formats.put("short", DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.LONG));
}
+ @Getter @Setter
+ private String configuredFormat;
+
@SuppressWarnings("unchecked")
public TimeStampValueSemanticsProviderAbstract(final FacetHolder holder, final Class<T> adaptedClass) {
- super(FormatIdentifier.TIMESTAMP, holder, adaptedClass, TYPICAL_LENGTH, Immutability.NOT_IMMUTABLE, EqualByContent.NOT_HONOURED, (T) DEFAULT_VALUE);
+ super(FormatIdentifier.TIMESTAMP, FormatIdentifier.TIMESTAMP.name().toLowerCase(), holder, adaptedClass, TYPICAL_LENGTH, Immutability.NOT_IMMUTABLE, EqualByContent.NOT_HONOURED, (T) DEFAULT_VALUE);
+
+ configuredFormat = getConfiguration()
+ .getValue().getFormat().getOrDefault(FormatIdentifier.TIMESTAMP.name().toLowerCase(), defaultFormat()).toLowerCase().trim();
+
+ buildFormat(configuredFormat);
final String formatRequired = getConfiguration()
.getValue().getFormat().getOrDefault(FormatIdentifier.TIMESTAMP.name().toLowerCase(), null);
@@ -98,4 +109,11 @@ abstract class TimeStampValueSemanticsProviderAbstract<T> extends ValueSemantics
return formats;
}
+
+ @Override
+ public void appendAttributesTo(Map<String, Object> attributeMap) {
+ super.appendAttributesTo(attributeMap);
+ attributeMap.put("configuredFormat", configuredFormat);
+ }
+
}