diff options
Diffstat (limited to 'eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/impl/data/Triple.java')
-rw-r--r-- | eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/impl/data/Triple.java | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/impl/data/Triple.java b/eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/impl/data/Triple.java new file mode 100644 index 00000000..e4d2c4dd --- /dev/null +++ b/eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/impl/data/Triple.java @@ -0,0 +1,67 @@ +/* + * Copyright 2017 Graz University of Technology EAAF-Core Components has been developed in a + * cooperation between EGIZ, A-SIT Plus, A-SIT, and Graz University of Technology. + * + * Licensed under the EUPL, Version 1.2 or - as soon they will be approved by the European + * Commission - subsequent versions of the EUPL (the "Licence"); You may not use this work except in + * compliance with the Licence. You may obtain a copy of the Licence at: + * https://joinup.ec.europa.eu/news/understanding-eupl-v12 + * + * Unless required by applicable law or agreed to in writing, software distributed under the Licence + * is distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the Licence for the specific language governing permissions and limitations under + * the Licence. + * + * This product combines work with different licenses. See the "NOTICE" text file for details on the + * various modules and licenses. The "NOTICE" text file is part of the distribution. Any derivative + * works that you distribute must include a readable copy of the "NOTICE" text file. +*/ + +package at.gv.egiz.eaaf.core.impl.data; + +import java.text.MessageFormat; + +public class Triple<P1, P2, P3> { + + private static final String TO_STRING_PATTERN = "[{0}:{3} {1}:{4} {2}:{5}]"; + + private final P1 first; + private final P2 second; + private final P3 third; + + + + private Triple(final P1 newFirst, final P2 newSecond, final P3 newThird) { + this.first = newFirst; + this.second = newSecond; + this.third = newThird; + } + + public P1 getFirst() { + return this.first; + } + + public P2 getSecond() { + return this.second; + } + + public P3 getThird() { + return this.third; + } + + public static <P1, P2, P3> Triple<P1, P2, P3> newInstance(final P1 newFirst, final P2 newSecond, final P3 newThird) { + return new Triple<>(newFirst, newSecond, newThird); + } + + @Override + public String toString() { + return MessageFormat.format(TO_STRING_PATTERN, + this.first != null ? this.first.getClass().getSimpleName() : "null", + this.second != null ? this.second.getClass().getSimpleName() : "null", + this.third != null ? this.third.getClass().getSimpleName() : "null", + this.first, + this.second, + this.third); + + } +} |