oshi.util.tuples.Quartet Maven / Gradle / Ivy
/**
* MIT License
*
* Copyright (c) 2010 - 2020 The OSHI Project Contributors: https://github.com/oshi/oshi/graphs/contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package oshi.util.tuples;
import oshi.annotation.concurrent.ThreadSafe;
/**
* Convenience class for returning multiple objects from methods.
*
* @param
* Type of the first element
* @param
* Type of the second element
* @param
* Type of the third element
* @param
* Type of the fourth element
*/
@ThreadSafe
public class Quartet {
private final A a;
private final B b;
private final C c;
private final D d;
/**
* Create a quartet and store four objects.
*
* @param a
* the first object to store
* @param b
* the second object to store
* @param c
* the third object to store
* @param d
* the fourth object to store
*/
public Quartet(A a, B b, C c, D d) {
this.a = a;
this.b = b;
this.c = c;
this.d = d;
}
/**
* Returns the first stored object.
*
* @return first object stored
*/
public final A getA() {
return a;
}
/**
* Returns the second stored object.
*
* @return second object stored
*/
public final B getB() {
return b;
}
/**
* Returns the third stored object.
*
* @return third object stored
*/
public final C getC() {
return c;
}
/**
* Returns the fourth stored object.
*
* @return fourth object stored
*/
public final D getD() {
return d;
}
}