1 package org.unicode.cldr.util; 2 3 import com.google.common.collect.ImmutableList; 4 import java.io.File; 5 import java.nio.file.Path; 6 import java.util.List; 7 import org.unicode.cldr.tool.ToolConstants; 8 9 /** 10 * Constant paths (moved here from CldrUtility). These must not be used by any code destined for the 11 * SurveyTool, as this class will not be included. 12 * 13 * @author srl 14 * <p>TODO: clarify "this class will not be included" comment above. Why is it necessary and/or 15 * preferable not to include this class in ST? Anyway, note that 16 * CLDRConfig.getInstance().getCldrBaseDirectory() can be used as an alternative to 17 * CLDRPaths.BASE_DIRECTORY. 18 */ 19 public class CLDRPaths { 20 public static final String COMMON_SUBDIR = "common/"; 21 public static final String CASING_SUBDIR = "casing/"; 22 public static final String VALIDITY_SUBDIR = "validity/"; 23 public static final String ANNOTATIONS_DERIVED_SUBDIR = "annotationsDerived/"; 24 public static final String COLLATION_SUBDIR = "collation/"; 25 public static final String RBNF_SUBDIR = "rbnf/"; 26 public static final String TRANSFORMS_SUBDIR = "transforms/"; 27 public static final String MAIN_SUBDIR = "main/"; 28 public static final String SUBDIVISIONS_SUBDIR = "subdivisions/"; 29 public static final String ANNOTATIONS_SUBDIR = "annotations/"; 30 31 /** 32 * default working directory for Eclipse is . = ${workspace_loc:cldr}, which is 33 * <CLDR>/tools/cldr-code/ 34 */ 35 // set the base directory with -Dcldrdata=<value> 36 // if the main is different, use -Dcldrmain=<value> 37 38 /** Maintained in GitHub, base directory for CLDR */ 39 public static final String BASE_DIRECTORY = 40 CldrUtility.getPath(CldrUtility.getProperty(CldrUtility.DIR_KEY, null)); 41 /** 42 * Get path to dtd2md dir 43 * 44 * @see DTD2Markdown 45 * @return Path 46 */ getDtd2MdDirectory()47 public static final Path getDtd2MdDirectory() { 48 return new File(BASE_DIRECTORY).toPath().resolve("docs/ldml/dtd2md"); 49 } 50 51 public static final String COMMON_DIRECTORY = CldrUtility.getPath(BASE_DIRECTORY, "common/"); 52 public static final String COLLATION_DIRECTORY = 53 CldrUtility.getPath(COMMON_DIRECTORY, COLLATION_SUBDIR); 54 public static final String CASING_DIRECTORY = 55 CldrUtility.getPath(COMMON_DIRECTORY, CASING_SUBDIR); 56 public static final String MAIN_DIRECTORY = 57 CldrUtility.getProperty( 58 "CLDR_MAIN", CldrUtility.getPath(CLDRPaths.COMMON_DIRECTORY, MAIN_SUBDIR)); 59 60 public static final String RBNF_DIRECTORY = 61 CldrUtility.getPath(CLDRPaths.COMMON_DIRECTORY, RBNF_SUBDIR); 62 public static final String TRANSFORMS_DIRECTORY = 63 CldrUtility.getPath(CLDRPaths.COMMON_DIRECTORY, TRANSFORMS_SUBDIR); 64 public static final String ANNOTATIONS_DIRECTORY = 65 CldrUtility.getPath(CLDRPaths.COMMON_DIRECTORY, ANNOTATIONS_SUBDIR); 66 public static final String SUBDIVISIONS_DIRECTORY = 67 CldrUtility.getPath(CLDRPaths.COMMON_DIRECTORY, SUBDIVISIONS_SUBDIR); 68 public static final String ANNOTATIONS_DERIVED_DIRECTORY = 69 CldrUtility.getPath(CLDRPaths.COMMON_DIRECTORY, ANNOTATIONS_DERIVED_SUBDIR); 70 public static final String VALIDITY_DIRECTORY = 71 CldrUtility.getPath(CLDRPaths.COMMON_DIRECTORY, VALIDITY_SUBDIR); 72 73 public static final String STAGING_DIRECTORY = 74 CldrUtility.getPath(CLDRPaths.BASE_DIRECTORY, "../cldr-staging/"); 75 76 public static final String TEST_DATA = COMMON_DIRECTORY + "testData/"; 77 78 public static final String SEED_DIRECTORY1 = 79 CldrUtility.getProperty( 80 "CLDR_SEED", CldrUtility.getPath(CLDRPaths.COMMON_DIRECTORY, "../" + "seed/")); 81 public static final String SEED_DIRECTORY = CldrUtility.getPath(SEED_DIRECTORY1, MAIN_SUBDIR); 82 public static final String SEED_COLLATION_DIRECTORY = 83 CldrUtility.getPath(SEED_DIRECTORY1, COLLATION_SUBDIR); 84 public static final String SEED_CASING_DIRECTORY = 85 CldrUtility.getPath(SEED_DIRECTORY1, CASING_SUBDIR); 86 public static final String SEED_ANNOTATIONS_DIRECTORY = 87 CldrUtility.getPath(SEED_DIRECTORY1, ANNOTATIONS_SUBDIR); 88 89 public static final String EXEMPLARS_DIRECTORY = 90 CldrUtility.getPath(CLDRPaths.BASE_DIRECTORY, "exemplars/" + MAIN_SUBDIR); 91 public static final String UTIL_SRC_DATA_DIR = 92 CldrUtility.getPath( 93 BASE_DIRECTORY, "tools/cldr-code/src/main/resources/org/unicode/cldr/util"); 94 public static final String BIRTH_DATA_DIR = 95 CldrUtility.getPath( 96 BASE_DIRECTORY, 97 "tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/births"); 98 public static final String UNITTEST_DATA_DIR = 99 CldrUtility.getPath( 100 BASE_DIRECTORY, 101 "tools/cldr-code/src/test/resources/org/unicode/cldr/unittest/data"); 102 103 public static final String CHART_DIRECTORY = 104 CldrUtility.getPath(STAGING_DIRECTORY + "docs/charts/", ToolConstants.CHART_VERSION); 105 public static final String VERIFY_DIR = CLDRPaths.CHART_DIRECTORY + "verify/"; 106 107 public static final String APPS_EMOJI_DIRECTORY = 108 CLDRPaths.BASE_DIRECTORY + "/tools/cldr-apps/src/main/webapp/images/emoji"; 109 110 /** Maintained in SVN */ 111 public static final String AUX_DIRECTORY = 112 CldrUtility.getPath(CldrUtility.getProperty("CLDR_TMP_DIR", "cldr-aux/")); 113 114 /** Local files, not backed up on either Github or SVN * */ 115 public static final String LOCAL_DIRECTORY = 116 CldrUtility.getPath(CldrUtility.getProperty("LOCAL_DIR", BASE_DIRECTORY + "/../")); 117 118 public static final String ARCHIVE_DIRECTORY = 119 CldrUtility.getPath( 120 CldrUtility.getProperty( 121 "ARCHIVE", CldrUtility.getPath(LOCAL_DIRECTORY, "cldr-archive/"))); 122 public static final String LAST_RELEASE_DIRECTORY = 123 ARCHIVE_DIRECTORY + "cldr-" + ToolConstants.LAST_RELEASE_VERSION_WITH0 + "/"; 124 public static final String LAST_COMMON_DIRECTORY = 125 CldrUtility.getPath(LAST_RELEASE_DIRECTORY, "common/"); 126 public static final String LAST_TRANSFORMS_DIRECTORY = 127 CldrUtility.getPath(CLDRPaths.LAST_COMMON_DIRECTORY, TRANSFORMS_SUBDIR); 128 129 public static final String GEN_DIRECTORY = 130 CldrUtility.getPath( 131 CldrUtility.getProperty( 132 "CLDR_GEN_DIR", 133 CldrUtility.getPath(LOCAL_DIRECTORY, "Generated/cldr/"))); 134 public static final String DATA_DIRECTORY = 135 CldrUtility.getPath( 136 CldrUtility.getProperty( 137 "CLDR_EXT_DATA_DIR", CldrUtility.getPath(LOCAL_DIRECTORY, "Data/"))); 138 139 // probably can be removed & replaced 140 public static final String CLDR_PRIVATE_DIRECTORY = 141 CldrUtility.getPath( 142 CldrUtility.getProperty( 143 "CLDR_PRIVATE_DATA", 144 CldrUtility.getPath(LOCAL_DIRECTORY, "../cldr-private/"))); 145 public static final String TMP_DIRECTORY = 146 CldrUtility.getPath( 147 CldrUtility.getProperty( 148 "CLDR_TMP_DIR", CldrUtility.getPath(LOCAL_DIRECTORY, "../cldr-tmp/"))); 149 public static final String TMP2_DIRECTORY = 150 CldrUtility.getPath( 151 CldrUtility.getProperty( 152 "CLDR_TMP_DIR", CldrUtility.getPath(LOCAL_DIRECTORY, "../cldr-tmp2/"))); 153 154 /** 155 * @deprecated please use XMLFile and CLDRFILE getSupplementalDirectory() 156 * @see DEFAULT_SUPPLEMENTAL_DIRECTORY 157 */ 158 @Deprecated 159 public static final String SUPPLEMENTAL_DIRECTORY = 160 CldrUtility.getPath(COMMON_DIRECTORY, "supplemental/"); 161 /** Only the default, if no other directory is specified. */ 162 public static final String DEFAULT_SUPPLEMENTAL_DIRECTORY = 163 CldrUtility.getPath(COMMON_DIRECTORY, "supplemental/"); 164 165 public static final String LOG_DIRECTORY = CldrUtility.getPath(TMP_DIRECTORY, "logs/"); 166 public static final String TEST_DIR = CldrUtility.getPath(CLDRPaths.TMP_DIRECTORY, "test/"); 167 168 /** If the generated BAT files are to work, this needs to be set right */ 169 public static final String COMPARE_PROGRAM = 170 "\"C:\\Program Files (x86)\\Compare It!\\wincmp3.exe\""; 171 172 /** 173 * @deprecated Don't use this from any code that is run from the .JAR (SurveyTool, tests, etc). 174 * If it must be used, add a comment next to the usage to explain why it is needed. 175 */ 176 @Deprecated 177 public static final String UTIL_DATA_DIR = 178 FileReaders.getRelativeFileName(CldrUtility.class, "data/"); 179 180 public enum DIRECTORIES { 181 common_dtd, 182 common_properties, 183 common_uca, 184 185 common_bcp47(DtdType.ldmlBCP47), 186 187 common_annotations(DtdType.ldml), 188 common_casing(DtdType.ldml), 189 common_collation(DtdType.ldml), 190 common_main(DtdType.ldml), 191 common_rbnf(DtdType.ldml), 192 common_segments(DtdType.ldml), 193 common_subdivisions(DtdType.ldml), 194 195 common_supplemental(DtdType.supplementalData), 196 common_transforms(DtdType.supplementalData), 197 common_validity(DtdType.supplementalData); 198 public final List<DtdType> dtdType; 199 DIRECTORIES(DtdType... dtdType)200 private DIRECTORIES(DtdType... dtdType) { 201 this.dtdType = ImmutableList.copyOf(dtdType); 202 } 203 } 204 } 205