xref: /aosp_15_r20/external/cldr/tools/cldr-code/src/main/java/org/unicode/cldr/util/CLDRPaths.java (revision 912701f9769bb47905792267661f0baf2b85bed5)
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