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 BIRTH_DATA_DIR = 92 CldrUtility.getPath( 93 BASE_DIRECTORY, 94 "tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/births"); 95 public static final String UNITTEST_DATA_DIR = 96 CldrUtility.getPath( 97 BASE_DIRECTORY, 98 "tools/cldr-code/src/test/resources/org/unicode/cldr/unittest/data"); 99 100 public static final String CHART_DIRECTORY = 101 CldrUtility.getPath(STAGING_DIRECTORY + "docs/charts/", ToolConstants.CHART_VERSION); 102 public static final String VERIFY_DIR = CLDRPaths.CHART_DIRECTORY + "verify/"; 103 104 public static final String APPS_EMOJI_DIRECTORY = 105 CLDRPaths.BASE_DIRECTORY + "/tools/cldr-apps/src/main/webapp/images/emoji"; 106 107 /** Maintained in SVN */ 108 public static final String AUX_DIRECTORY = 109 CldrUtility.getPath(CldrUtility.getProperty("CLDR_TMP_DIR", "cldr-aux/")); 110 111 /** Local files, not backed up on either Github or SVN * */ 112 public static final String LOCAL_DIRECTORY = 113 CldrUtility.getPath(CldrUtility.getProperty("LOCAL_DIR", BASE_DIRECTORY + "/../")); 114 115 public static final String ARCHIVE_DIRECTORY = 116 CldrUtility.getPath( 117 CldrUtility.getProperty( 118 "ARCHIVE", CldrUtility.getPath(LOCAL_DIRECTORY, "cldr-archive/"))); 119 public static final String LAST_RELEASE_DIRECTORY = 120 ARCHIVE_DIRECTORY + "cldr-" + ToolConstants.LAST_RELEASE_VERSION_WITH0 + "/"; 121 public static final String LAST_COMMON_DIRECTORY = 122 CldrUtility.getPath(LAST_RELEASE_DIRECTORY, "common/"); 123 public static final String LAST_TRANSFORMS_DIRECTORY = 124 CldrUtility.getPath(CLDRPaths.LAST_COMMON_DIRECTORY, TRANSFORMS_SUBDIR); 125 126 public static final String GEN_DIRECTORY = 127 CldrUtility.getPath( 128 CldrUtility.getProperty( 129 "CLDR_GEN_DIR", 130 CldrUtility.getPath(LOCAL_DIRECTORY, "Generated/cldr/"))); 131 public static final String DATA_DIRECTORY = 132 CldrUtility.getPath( 133 CldrUtility.getProperty( 134 "CLDR_EXT_DATA_DIR", CldrUtility.getPath(LOCAL_DIRECTORY, "Data/"))); 135 136 // probably can be removed & replaced 137 public static final String CLDR_PRIVATE_DIRECTORY = 138 CldrUtility.getPath( 139 CldrUtility.getProperty( 140 "CLDR_PRIVATE_DATA", 141 CldrUtility.getPath(LOCAL_DIRECTORY, "../cldr-private/"))); 142 public static final String TMP_DIRECTORY = 143 CldrUtility.getPath( 144 CldrUtility.getProperty( 145 "CLDR_TMP_DIR", CldrUtility.getPath(LOCAL_DIRECTORY, "../cldr-tmp/"))); 146 public static final String TMP2_DIRECTORY = 147 CldrUtility.getPath( 148 CldrUtility.getProperty( 149 "CLDR_TMP_DIR", CldrUtility.getPath(LOCAL_DIRECTORY, "../cldr-tmp2/"))); 150 151 /** 152 * @deprecated please use XMLFile and CLDRFILE getSupplementalDirectory() 153 * @see DEFAULT_SUPPLEMENTAL_DIRECTORY 154 */ 155 @Deprecated 156 public static final String SUPPLEMENTAL_DIRECTORY = 157 CldrUtility.getPath(COMMON_DIRECTORY, "supplemental/"); 158 /** Only the default, if no other directory is specified. */ 159 public static final String DEFAULT_SUPPLEMENTAL_DIRECTORY = 160 CldrUtility.getPath(COMMON_DIRECTORY, "supplemental/"); 161 162 public static final String LOG_DIRECTORY = CldrUtility.getPath(TMP_DIRECTORY, "logs/"); 163 public static final String TEST_DIR = CldrUtility.getPath(CLDRPaths.TMP_DIRECTORY, "test/"); 164 165 /** If the generated BAT files are to work, this needs to be set right */ 166 public static final String COMPARE_PROGRAM = 167 "\"C:\\Program Files (x86)\\Compare It!\\wincmp3.exe\""; 168 169 /** 170 * @deprecated Don't use this from any code that is run from the .JAR (SurveyTool, tests, etc). 171 * If it must be used, add a comment next to the usage to explain why it is needed. 172 */ 173 @Deprecated 174 public static final String UTIL_DATA_DIR = 175 FileReaders.getRelativeFileName(CldrUtility.class, "data/"); 176 177 public enum DIRECTORIES { 178 common_dtd, 179 common_properties, 180 common_uca, 181 182 common_bcp47(DtdType.ldmlBCP47), 183 184 common_annotations(DtdType.ldml), 185 common_casing(DtdType.ldml), 186 common_collation(DtdType.ldml), 187 common_main(DtdType.ldml), 188 common_rbnf(DtdType.ldml), 189 common_segments(DtdType.ldml), 190 common_subdivisions(DtdType.ldml), 191 192 common_supplemental(DtdType.supplementalData), 193 common_transforms(DtdType.supplementalData), 194 common_validity(DtdType.supplementalData); 195 public final List<DtdType> dtdType; 196 DIRECTORIES(DtdType... dtdType)197 private DIRECTORIES(DtdType... dtdType) { 198 this.dtdType = ImmutableList.copyOf(dtdType); 199 } 200 } 201 } 202