blob: bd200ce7a444a90a08618ddd8e8159b4def339d5 [file] [log] [blame]
/*
* Copyright (C) 2015 The Android Open Source Project
*
* Licensed 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.
*/
package com.android.tools.idea.gradle.editor.metadata;
import com.android.tools.idea.gradle.editor.entity.GradleEditorEntity;
/**
* It's assumed that the whole 'enhanced gradle editor' framework is pluggable and customizable, i.e. different plugins
* might provide their own {@link GradleEditorEntityMetaData meta-data}, but there is still a core part which does a lot of stuff.
* <p/>
* Shared meta-data instances used by that core part are hold within the current class.
*/
public class StdGradleEditorEntityMetaData {
/**
* Indicates that particular {@link GradleEditorEntity} is injected from elsewhere, e.g. 'subprojects'/'allprojects' parent
* project's <code>build.gradle</code>.
*/
public static final GradleEditorEntityMetaData INJECTED = new MarkerGradleEditorEntityMetaData("INJECTED");
/**
* Indicates that particular {@link GradleEditorEntity} declared at the target <code>build.gradle</code> will be injected
* to another projects as well, e.g. declared at 'subprojects'/'allprojects' section.
*/
public static final GradleEditorEntityMetaData OUTGOING = new MarkerGradleEditorEntityMetaData("OUTGOING");
/**
* Indicates that particular {@link GradleEditorEntity} declared at the target <code>build.gradle</code> file might be remove
* via our 'enhanced gradle editor' UI.
* <p/>
* E.g. an external dependency might be removed but not, say, compile sdk version declaration.
*/
public static final GradleEditorEntityMetaData REMOVABLE = new MarkerGradleEditorEntityMetaData("REMOVABLE");
/**
* Indicates that particular entity is read-only.
* <p/>
* Example: <code>build.gradle</code> might contain an expression like <code>'mavenCentral()'</code> - it constructs an entity
* which uses maven central url. However, we don't want to allow url modification via UI, so, we might mark the entity with
* this value for that.
*/
public static final GradleEditorEntityMetaData READ_ONLY = new MarkerGradleEditorEntityMetaData("READ_ONLY");
private StdGradleEditorEntityMetaData() {
}
}