001/*
002 * JDrupes Builder
003 * Copyright (C) 2025 Michael N. Lipp
004 * 
005 * This program is free software: you can redistribute it and/or modify
006 * it under the terms of the GNU Affero General Public License as
007 * published by the Free Software Foundation, either version 3 of the
008 * License, or (at your option) any later version.
009 *
010 * This program is distributed in the hope that it will be useful,
011 * but WITHOUT ANY WARRANTY; without even the implied warranty of
012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
013 * GNU Affero General Public License for more details.
014 *
015 * You should have received a copy of the GNU Affero General Public License
016 * along with this program.  If not, see <https://www.gnu.org/licenses/>.
017 */
018
019package org.jdrupes.builder.api;
020
021/// Attributes the relationship between a [Project] ("this project")
022/// and an associated [ResourceProvider].
023///
024@SuppressWarnings("PMD.FieldNamingConventions")
025public enum Intend {
026    
027    /// The project consumes the resources from the associated
028    /// provider, but it does not expose them, i.e. the project
029    /// in its role as provider does not provide them to others.
030    Consume,
031    
032    /// The resources from the provider are forwarded to other
033    /// projects that have this project as a dependency but
034    /// are not used (consumed) by this project.
035    Forward,
036    
037    /// The project consumes the resources from the associated
038    /// provider and makes them available to other projects that
039    /// have this project as a dependency.
040    Expose,
041    
042    /// The resources from the associated provider are genuinely
043    /// provided by this project, i.e. supplied by this project.
044    /// This is the default relationship between a project and its
045    /// generators. It implies that the resources obtained through
046    /// this dependency are exposed to projects that have this
047    /// project as a dependency.
048    Supply;
049}