This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch ISIS-2050
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 3c242398f1cf78f221e223ee816f7faabe23f0a4
Author: danhaywood <d...@haywood-associates.co.uk>
AuthorDate: Thu Dec 13 23:27:46 2018 +0000

    ISIS-2050: adds ValueFacet for Joda LocalTime
    
    Uses a very simple implementation, because I suspect that the other 
capabilities of ValueFacet simply aren't needed anymore...
---
 .../facets/object/value/ValueFacetSimple.java      | 50 ++++++++++++++++++++++
 .../JodaLocalTimeValueFacetSimpleFactory.java      | 47 ++++++++++++++++++++
 .../dflt/ProgrammingModelFacetsJava5.java          |  2 +
 3 files changed, 99 insertions(+)

diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacetSimple.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacetSimple.java
new file mode 100644
index 0000000..5b50363
--- /dev/null
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacetSimple.java
@@ -0,0 +1,50 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.object.value;
+
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+
+public class ValueFacetSimple extends FacetAbstract implements ValueFacet {
+
+    public static Class<? extends Facet> type() {
+        return ValueFacet.class;
+    }
+
+    public ValueFacetSimple(final FacetHolder holder) {
+        super(type(), holder, Derivation.NOT_DERIVED);
+    }
+
+    @Override
+    public Class<? extends Facet>[] facetTypes() {
+        return new Class[]{ValueFacet.class};
+    }
+
+    @Override
+    public <T extends Facet> T getFacet(final Class<T> facet) {
+        return (T)this;
+    }
+
+    @Override
+    public boolean containsFacetTypeOf(final Class<? extends Facet> facetType) 
{
+        return facetType == ValueFacet.class;
+    }
+}
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timejodalocal/JodaLocalTimeValueFacetSimpleFactory.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timejodalocal/JodaLocalTimeValueFacetSimpleFactory.java
new file mode 100644
index 0000000..31ce6e3
--- /dev/null
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timejodalocal/JodaLocalTimeValueFacetSimpleFactory.java
@@ -0,0 +1,47 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.value.timejodalocal;
+
+import org.joda.time.LocalDate;
+import org.joda.time.LocalTime;
+
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.FacetUtil;
+import org.apache.isis.core.metamodel.facets.object.value.ValueFacetSimple;
+import 
org.apache.isis.core.metamodel.facets.object.value.vsp.ValueFacetUsingSemanticsProviderFactory;
+
+public class JodaLocalTimeValueFacetSimpleFactory extends 
ValueFacetUsingSemanticsProviderFactory<LocalDate> {
+
+    public JodaLocalTimeValueFacetSimpleFactory() {
+        super();
+    }
+
+    @Override
+    public void process(final ProcessClassContext processClassContext) {
+        final Class<?> type = processClassContext.getCls();
+        final FacetHolder holder = processClassContext.getFacetHolder();
+
+        if (type != LocalTime.class) {
+            return;
+        }
+        FacetUtil.addFacet(new ValueFacetSimple(holder));
+    }
+
+}
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
 
b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
index ee5c697..d097e30 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
@@ -192,6 +192,7 @@ import 
org.apache.isis.core.metamodel.facets.value.shortint.ShortPrimitiveValueF
 import 
org.apache.isis.core.metamodel.facets.value.shortint.ShortWrapperValueFacetUsingSemanticsProviderFactory;
 import 
org.apache.isis.core.metamodel.facets.value.string.StringValueFacetUsingSemanticsProviderFactory;
 import 
org.apache.isis.core.metamodel.facets.value.time.TimeValueFacetUsingSemanticsProviderFactory;
+import 
org.apache.isis.core.metamodel.facets.value.timejodalocal.JodaLocalTimeValueFacetSimpleFactory;
 import 
org.apache.isis.core.metamodel.facets.value.timesql.JavaSqlTimeValueFacetUsingSemanticsProviderFactory;
 import 
org.apache.isis.core.metamodel.facets.value.timestamp.TimeStampValueFacetUsingSemanticsProviderFactory;
 import 
org.apache.isis.core.metamodel.facets.value.timestampsql.JavaSqlTimeStampValueFacetUsingSemanticsProviderFactory;
@@ -508,6 +509,7 @@ public final class ProgrammingModelFacetsJava5 extends 
ProgrammingModelAbstract
         addFactory(new JodaLocalDateValueFacetUsingSemanticsProviderFactory());
         addFactory(new 
JodaLocalDateTimeValueFacetUsingSemanticsProviderFactory());
         addFactory(new JodaDateTimeValueFacetUsingSemanticsProviderFactory());
+        addFactory(new JodaLocalTimeValueFacetSimpleFactory());
 
         // written to not trample over TypeOf if already installed
         addFactory(new CollectionFacetFactory());

Reply via email to