/*
 * Copyright (c) 2002-2017, the original author or authors.
 *
 * This software is distributable under the BSD license. See the terms of the
 * BSD license in the documentation provided with this software.
 *
 * https://opensource.org/licenses/BSD-3-Clause
 */
package jdk.internal.org.jline.reader.impl;

import jdk.internal.org.jline.reader.MaskingCallback;

import java.util.Objects;

Simple MaskingCallback that will replace all the characters in the line with the given mask. If the given mask is equal to LineReaderImpl.NULL_MASK then the line will be replaced with an empty String.
/** * Simple {@link MaskingCallback} that will replace all the characters in the line with the given mask. * If the given mask is equal to {@link LineReaderImpl#NULL_MASK} then the line will be replaced with an empty String. */
public final class SimpleMaskingCallback implements MaskingCallback { private final Character mask; public SimpleMaskingCallback(Character mask) { this.mask = Objects.requireNonNull(mask, "mask must be a non null character"); } @Override public String display(String line) { if (mask.equals(LineReaderImpl.NULL_MASK)) { return ""; } else { StringBuilder sb = new StringBuilder(line.length()); for (int i = line.length(); i-- > 0;) { sb.append((char) mask); } return sb.toString(); } } @Override public String history(String line) { return null; } }