Mitigate KT-24309 for working in Android IDE plugin
[idea/community.git] / platform / projectModel-api / src / com / intellij / openapi / components / StoragePathMacros.java
1 // Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 package com.intellij.openapi.components;
3
4 import com.intellij.openapi.application.PathManager;
5 import com.intellij.openapi.project.Project;
6 import org.jetbrains.annotations.NotNull;
7
8 /**
9  * We have a framework for persisting component states (see {@link State} {@link Storage}). It allows to specify which file
10  * should hold persisting data. There is a number of standard file system anchors like 'workspace file', 'project config dir' which
11  * can be used for defining a storage file's path. Hence, IJ provides special support for such anchors in the form of macros,
12  * i.e. special markers that are mapped to the current file system environment at runtime.
13  * <p/>
14  * This class holds those markers and utility method for working with them.
15  */
16 public final class StoragePathMacros {
17   /**
18    * {@link Project#getWorkspaceFile() Workspace} file key.
19    * {@code 'Workspace file'} holds settings that are local to a particular environment and should not be shared with another
20    * team members.
21    */
22   @NotNull
23   public static final String WORKSPACE_FILE = "$WORKSPACE_FILE$";
24
25   /**
26    * Storage file for cache-like data. Stored outside of project directory (if project level component)
27    * and outside of application configuration directory (if application level component).
28    */
29   public static final String CACHE_FILE = "$CACHE_FILE$";
30
31   /**
32    * Applicable only for project-level.
33    */
34   @NotNull
35   public static final String PRODUCT_WORKSPACE_FILE = "$PRODUCT_WORKSPACE_FILE$";
36
37   @NotNull
38   public static final String MODULE_FILE = "$MODULE_FILE$";
39
40   /**
41    * Application level non-roamable storage.
42    */
43   public static final String NON_ROAMABLE_FILE = PathManager.DEFAULT_OPTIONS_FILE;
44
45   private StoragePathMacros() {
46   }
47 }