1 /* 2 * Copyright (C) 2017, David Pursehouse <david.pursehouse@gmail.com> and others 3 * 4 * This program and the accompanying materials are made available under the 5 * terms of the Eclipse Distribution License v. 1.0 which is available at 6 * https://www.eclipse.org/org/documents/edl-v10.php. 7 * 8 * SPDX-License-Identifier: BSD-3-Clause 9 */ 10 11 package org.eclipse.jgit.lib; 12 13 import org.eclipse.jgit.util.StringUtils; 14 15 /** 16 * Submodule section of a Git configuration file. 17 * 18 * @since 4.7 19 */ 20 public class SubmoduleConfig { 21 22 /** 23 * Config values for submodule.[name].fetchRecurseSubmodules. 24 */ 25 public enum FetchRecurseSubmodulesMode implements Config.ConfigEnum { 26 /** Unconditionally recurse into all populated submodules. */ 27 YES("true"), //$NON-NLS-1$ 28 29 /** 30 * Only recurse into a populated submodule when the superproject 31 * retrieves a commit that updates the submodule's reference to a commit 32 * that isn't already in the local submodule clone. 33 */ 34 ON_DEMAND("on-demand"), //$NON-NLS-1$ 35 36 /** Completely disable recursion. */ 37 NO("false"); //$NON-NLS-1$ 38 39 private final String configValue; 40 41 private FetchRecurseSubmodulesMode(String configValue) { 42 this.configValue = configValue; 43 } 44 45 @Override 46 public String toConfigValue() { 47 return configValue; 48 } 49 50 @Override 51 public boolean matchConfigValue(String s) { 52 if (StringUtils.isEmptyOrNull(s)) { 53 return false; 54 } 55 s = s.replace('-', '_'); 56 return name().equalsIgnoreCase(s) 57 || configValue.equalsIgnoreCase(s); 58 } 59 } 60 }