1 /* 2 * Copyright 2020-2022 The OSHI Project Contributors 3 * SPDX-License-Identifier: MIT 4 */ 5 package oshi.util.tuples; 6 7 import oshi.annotation.concurrent.ThreadSafe; 8 9 /** 10 * Convenience class for returning multiple objects from methods. 11 * 12 * @param <A> Type of the first element 13 * @param <B> Type of the second element 14 * @param <C> Type of the third element 15 * @param <D> Type of the fourth element 16 */ 17 @ThreadSafe 18 public class Quartet<A, B, C, D> { 19 20 private final A a; 21 private final B b; 22 private final C c; 23 private final D d; 24 25 /** 26 * Create a quartet and store four objects. 27 * 28 * @param a the first object to store 29 * @param b the second object to store 30 * @param c the third object to store 31 * @param d the fourth object to store 32 */ 33 public Quartet(A a, B b, C c, D d) { 34 this.a = a; 35 this.b = b; 36 this.c = c; 37 this.d = d; 38 } 39 40 /** 41 * Returns the first stored object. 42 * 43 * @return first object stored 44 */ 45 public final A getA() { 46 return a; 47 } 48 49 /** 50 * Returns the second stored object. 51 * 52 * @return second object stored 53 */ 54 public final B getB() { 55 return b; 56 } 57 58 /** 59 * Returns the third stored object. 60 * 61 * @return third object stored 62 */ 63 public final C getC() { 64 return c; 65 } 66 67 /** 68 * Returns the fourth stored object. 69 * 70 * @return fourth object stored 71 */ 72 public final D getD() { 73 return d; 74 } 75 }