aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/building/SettingsBuildingRequest.java
blob: 92d87d80d75bc65fadc45b5bba1a08d8f77fd413 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
package org.apache.maven.settings.building;

/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

import java.io.File;
import java.util.Properties;

/**
 * Collects settings that control the building of effective settings.
 *
 * @author Benjamin Bentmann
 */
public interface SettingsBuildingRequest
{

    /**
     * Gets the global settings file.
     *
     * @return The global settings file or {@code null} if none.
     */
    File getGlobalSettingsFile();

    /**
     * Sets the global settings file. A non-existent settings file is equivalent to empty settings. If both user
     * settings and global settings are given, the user settings take precedence.
     *
     * @param globalSettingsFile The global settings file, may be {@code null} to disable global settings.
     * @return This request, never {@code null}.
     */
    SettingsBuildingRequest setGlobalSettingsFile( File globalSettingsFile );

    /**
     * Gets the global settings source.
     *
     * @return The global settings source or {@code null} if none.
     */
    SettingsSource getGlobalSettingsSource();

    /**
     * Sets the global settings source. If both user settings and a global settings are given, the user settings take
     * precedence.
     *
     * @param globalSettingsSource The global settings source, may be {@code null} to disable global settings.
     * @return This request, never {@code null}.
     */
    SettingsBuildingRequest setGlobalSettingsSource( SettingsSource globalSettingsSource );

    /**
     * Gets the user settings file.
     *
     * @return The user settings file or {@code null} if none.
     */
    File getUserSettingsFile();

    /**
     * Sets the user settings file. A non-existent settings file is equivalent to empty settings. If both a user
     * settings file and a global settings file are given, the user settings take precedence.
     *
     * @param userSettingsFile The user settings file, may be {@code null} to disable user settings.
     * @return This request, never {@code null}.
     */
    SettingsBuildingRequest setUserSettingsFile( File userSettingsFile );

    /**
     * Gets the user settings source.
     *
     * @return The user settings source or {@code null} if none.
     */
    SettingsSource getUserSettingsSource();

    /**
     * Sets the user settings source. If both user settings and a global settings are given, the user settings take
     * precedence.
     *
     * @param userSettingsSource The user settings source, may be {@code null} to disable user settings.
     * @return This request, never {@code null}.
     */
    SettingsBuildingRequest setUserSettingsSource( SettingsSource userSettingsSource );

    /**
     * Gets the system properties to use for interpolation. The system properties are collected from the runtime
     * environment like {@link System#getProperties()} and environment variables.
     *
     * @return The system properties, never {@code null}.
     */
    Properties getSystemProperties();

    /**
     * Sets the system properties to use for interpolation. The system properties are collected from the runtime
     * environment like {@link System#getProperties()} and environment variables.
     *
     * @param systemProperties The system properties, may be {@code null}.
     * @return This request, never {@code null}.
     */
    SettingsBuildingRequest setSystemProperties( Properties systemProperties );

    /**
     * Gets the user properties to use for interpolation. The user properties have been configured directly by the user
     * on his discretion, e.g. via the {@code -Dkey=value} parameter on the command line.
     *
     * @return The user properties, never {@code null}.
     */
    Properties getUserProperties();

    /**
     * Sets the user properties to use for interpolation. The user properties have been configured directly by the user
     * on his discretion, e.g. via the {@code -Dkey=value} parameter on the command line.
     *
     * @param userProperties The user properties, may be {@code null}.
     * @return This request, never {@code null}.
     */
    SettingsBuildingRequest setUserProperties( Properties userProperties );

}