1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * https://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18 /* 19 * This is not the original file distributed by the Apache Software Foundation 20 * It has been modified by the Hipparchus project 21 */ 22 23 package org.hipparchus.linear; 24 25 import org.hipparchus.FieldElement; 26 27 /** 28 * Default implementation of the {@link FieldMatrixChangingVisitor} interface. 29 * <p> 30 * This class is a convenience to create custom visitors without defining all 31 * methods. This class provides default implementations that do nothing. 32 * </p> 33 * 34 * @param <T> the type of the field elements 35 */ 36 public class DefaultFieldMatrixChangingVisitor<T extends FieldElement<T>> 37 implements FieldMatrixChangingVisitor<T> { 38 /** Zero element of the field. */ 39 private final T zero; 40 41 /** Build a new instance. 42 * @param zero additive identity of the field 43 */ 44 public DefaultFieldMatrixChangingVisitor(final T zero) { 45 this.zero = zero; 46 } 47 48 /** {@inheritDoc} */ 49 @Override 50 public void start(int rows, int columns, 51 int startRow, int endRow, int startColumn, int endColumn) { 52 } 53 54 /** {@inheritDoc} */ 55 @Override 56 public T visit(int row, int column, T value) { 57 return value; 58 } 59 60 /** {@inheritDoc} */ 61 @Override 62 public T end() { 63 return zero; 64 } 65 }