/*
 * 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.commons.lang3.tuple;

A mutable triple consisting of three Object elements.

Not #ThreadSafe#

Type parameters:
  • <L> – the left element type
  • <M> – the middle element type
  • <R> – the right element type
Since:3.2
/** * <p>A mutable triple consisting of three {@code Object} elements.</p> * * <p>Not #ThreadSafe#</p> * * @param <L> the left element type * @param <M> the middle element type * @param <R> the right element type * * @since 3.2 */
public class MutableTriple<L, M, R> extends Triple<L, M, R> {
Serialization version
/** Serialization version */
private static final long serialVersionUID = 1L;
Left object
/** Left object */
public L left;
Middle object
/** Middle object */
public M middle;
Right object
/** Right object */
public R right;

Obtains an mutable triple of three objects inferring the generic types.

This factory allows the triple to be created using inference to obtain the generic types.

Params:
  • left – the left element, may be null
  • middle – the middle element, may be null
  • right – the right element, may be null
Type parameters:
  • <L> – the left element type
  • <M> – the middle element type
  • <R> – the right element type
Returns:a triple formed from the three parameters, not null
/** * <p>Obtains an mutable triple of three objects inferring the generic types.</p> * * <p>This factory allows the triple to be created using inference to * obtain the generic types.</p> * * @param <L> the left element type * @param <M> the middle element type * @param <R> the right element type * @param left the left element, may be null * @param middle the middle element, may be null * @param right the right element, may be null * @return a triple formed from the three parameters, not null */
public static <L, M, R> MutableTriple<L, M, R> of(final L left, final M middle, final R right) { return new MutableTriple<>(left, middle, right); }
Create a new triple instance of three nulls.
/** * Create a new triple instance of three nulls. */
public MutableTriple() { super(); }
Create a new triple instance.
Params:
  • left – the left value, may be null
  • middle – the middle value, may be null
  • right – the right value, may be null
/** * Create a new triple instance. * * @param left the left value, may be null * @param middle the middle value, may be null * @param right the right value, may be null */
public MutableTriple(final L left, final M middle, final R right) { super(); this.left = left; this.middle = middle; this.right = right; } //-----------------------------------------------------------------------
{@inheritDoc}
/** * {@inheritDoc} */
@Override public L getLeft() { return left; }
Sets the left element of the triple.
Params:
  • left – the new value of the left element, may be null
/** * Sets the left element of the triple. * * @param left the new value of the left element, may be null */
public void setLeft(final L left) { this.left = left; }
{@inheritDoc}
/** * {@inheritDoc} */
@Override public M getMiddle() { return middle; }
Sets the middle element of the triple.
Params:
  • middle – the new value of the middle element, may be null
/** * Sets the middle element of the triple. * * @param middle the new value of the middle element, may be null */
public void setMiddle(final M middle) { this.middle = middle; }
{@inheritDoc}
/** * {@inheritDoc} */
@Override public R getRight() { return right; }
Sets the right element of the triple.
Params:
  • right – the new value of the right element, may be null
/** * Sets the right element of the triple. * * @param right the new value of the right element, may be null */
public void setRight(final R right) { this.right = right; } }