AbstractHead.java
- /*
- * Copyright (C) 2008, Florian Köberle <florianskarten@web.de> and others
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Distribution License v. 1.0 which is available at
- * https://www.eclipse.org/org/documents/edl-v10.php.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
- package org.eclipse.jgit.fnmatch;
- import java.util.List;
- import org.eclipse.jgit.internal.JGitText;
- abstract class AbstractHead implements Head {
- private List<Head> newHeads = null;
- private final boolean star;
- /**
- * Whether the char matches
- *
- * @param c
- * a char.
- * @return whether the char matches
- */
- protected abstract boolean matches(char c);
- AbstractHead(boolean star) {
- this.star = star;
- }
- /**
- * Set {@link org.eclipse.jgit.fnmatch.Head}s which will not be modified.
- *
- * @param newHeads
- * a list of {@link org.eclipse.jgit.fnmatch.Head}s which will
- * not be modified.
- */
- public final void setNewHeads(List<Head> newHeads) {
- if (this.newHeads != null)
- throw new IllegalStateException(JGitText.get().propertyIsAlreadyNonNull);
- this.newHeads = newHeads;
- }
- /** {@inheritDoc} */
- @Override
- public List<Head> getNextHeads(char c) {
- if (matches(c)) {
- return newHeads;
- }
- return FileNameMatcher.EMPTY_HEAD_LIST;
- }
- boolean isStar() {
- return star;
- }
- }