You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tamaya.apache.org by an...@apache.org on 2017/08/08 22:23:38 UTC
[4/4] incubator-tamaya git commit: TAMAYA-274: Moved to Java 8,
added missing converters.
TAMAYA-274: Moved to Java 8, added missing converters.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/commit/c4285641
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/tree/c4285641
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/diff/c4285641
Branch: refs/heads/java8
Commit: c4285641af328fe7c3a0ee4522eca73c27f4fbdb
Parents: c32b45f
Author: anatole <an...@apache.org>
Authored: Wed Aug 9 00:22:59 2017 +0200
Committer: anatole <an...@apache.org>
Committed: Wed Aug 9 00:22:59 2017 +0200
----------------------------------------------------------------------
.../internal/converters/BooleanConverter.java | 4 +-
.../internal/converters/InstantConverter.java | 49 ++++++++++++++++
.../internal/converters/OptionalConverter.java | 61 ++++++++++++++++++++
.../org.apache.tamaya.spi.PropertyConverter | 2 +
4 files changed, 115 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c4285641/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BooleanConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BooleanConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BooleanConverter.java
index d926b14..61c182b 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BooleanConverter.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BooleanConverter.java
@@ -34,11 +34,12 @@ public class BooleanConverter implements PropertyConverter<Boolean> {
@Override
public Boolean convert(String value, ConversionContext context) {
- context.addSupportedFormats(getClass(), "yes (ignore case)", "y (ignore case)", "true (ignore case)", "t (ignore case)", "no (ignore case)", "n (ignore case)", "false (ignore case)", "f (ignore case)");
+ context.addSupportedFormats(getClass(), "yes (ignore case)", "y (ignore case)", "true (ignore case)", "t (ignore case)", "1", "no (ignore case)", "n (ignore case)", "false (ignore case)", "f (ignore case)", "0");
String ignoreCaseValue = Objects.requireNonNull(value)
.trim()
.toLowerCase(Locale.ENGLISH);
switch(ignoreCaseValue) {
+ case "1":
case "yes":
case "y":
case "true":
@@ -48,6 +49,7 @@ public class BooleanConverter implements PropertyConverter<Boolean> {
case "n":
case "false":
case "f":
+ case "0":
return Boolean.FALSE;
default:
LOG.finest("Unknown boolean value encountered: " + value);
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c4285641/code/core/src/main/java/org/apache/tamaya/core/internal/converters/InstantConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/InstantConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/InstantConverter.java
new file mode 100644
index 0000000..c0f2bf0
--- /dev/null
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/InstantConverter.java
@@ -0,0 +1,49 @@
+/*
+ * 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.tamaya.core.internal.converters;
+
+import org.apache.tamaya.spi.ConversionContext;
+import org.apache.tamaya.spi.PropertyConverter;
+
+import java.time.Instant;
+import java.util.logging.Logger;
+
+/**
+ * Converter, converting from String to Boolean.
+ */
+public class InstantConverter implements PropertyConverter<Instant> {
+
+ private final Logger LOG = Logger.getLogger(getClass().getName());
+
+ @Override
+ public Instant convert(String value, ConversionContext context) {
+ context.addSupportedFormats(getClass(), Instant.now().toString());
+ return Instant.parse(value);
+ }
+
+ @Override
+ public boolean equals(Object o){
+ return getClass().equals(o.getClass());
+ }
+
+ @Override
+ public int hashCode(){
+ return getClass().hashCode();
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c4285641/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OptionalConverter.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OptionalConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OptionalConverter.java
new file mode 100644
index 0000000..69595ac
--- /dev/null
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OptionalConverter.java
@@ -0,0 +1,61 @@
+/*
+ * 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.tamaya.core.internal.converters;
+
+import org.apache.tamaya.TypeLiteral;
+import org.apache.tamaya.core.internal.PropertyConverterManager;
+import org.apache.tamaya.spi.ConversionContext;
+import org.apache.tamaya.spi.PropertyConverter;
+
+import java.util.Locale;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.logging.Logger;
+
+/**
+ * Converter, converting from String to Boolean.
+ */
+public class OptionalConverter implements PropertyConverter<Optional> {
+
+ private final Logger LOG = Logger.getLogger(getClass().getName());
+
+ @Override
+ public Optional<?> convert(String value, ConversionContext context) {
+ TypeLiteral<Optional> target = (TypeLiteral<Optional>)context.getTargetType();
+ Object result = null;
+ for(PropertyConverter pv:context.getConfigurationContext().getPropertyConverters(
+ TypeLiteral.of(target.getType()))){
+ result = pv.convert(value, context);
+ if(result!=null){
+ return Optional.of(result);
+ }
+ }
+ return Optional.ofNullable(result);
+ }
+
+ @Override
+ public boolean equals(Object o){
+ return getClass().equals(o.getClass());
+ }
+
+ @Override
+ public int hashCode(){
+ return getClass().hashCode();
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/c4285641/code/core/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertyConverter
----------------------------------------------------------------------
diff --git a/code/core/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertyConverter b/code/core/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertyConverter
index a53d80d..f934197 100644
--- a/code/core/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertyConverter
+++ b/code/core/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertyConverter
@@ -39,3 +39,5 @@ org.apache.tamaya.core.internal.converters.LocalDateTimeConverter
org.apache.tamaya.core.internal.converters.LocalTimeConverter
org.apache.tamaya.core.internal.converters.OffsetDateTimeConverter
org.apache.tamaya.core.internal.converters.OffsetTimeConverter
+org.apache.tamaya.core.internal.converters.InstantConverter
+org.apache.tamaya.core.internal.converters.OptionalConverter