Cherry pick the banglets and such from wip-l1summercoat, this will be the basis for...
[SquirrelJME.git] / buildSrc / src / main / java / cc / squirreljme / plugin / swm / MarkedDependency.java
blob67b7742a4f22783544440c59ab79dd91efab29f4
1 // -*- Mode: Java; indent-tabs-mode: t; tab-width: 4 -*-
2 // ---------------------------------------------------------------------------
3 // SquirrelJME
4 // Copyright (C) Stephanie Gawroriski <xer@multiphasicapps.net>
5 // ---------------------------------------------------------------------------
6 // SquirrelJME is under the GNU General Public License v3+, or later.
7 // See license.mkd for licensing and copyright information.
8 // ---------------------------------------------------------------------------
10 package cc.squirreljme.plugin.swm;
12 /**
13 * This interface is used for anything which represents a dependency and as
14 * such can be used to check if a provided meets the conditions for a match.
16 * @since 2017/12/31
18 public interface MarkedDependency
20 /**
21 * Is this dependency optional?
23 * @return {@code true} if this dependency is optional.
24 * @since 2017/12/31
26 boolean isOptional();
28 /**
29 * Checks if this dependency matches the specified provision in that the
30 * provided entry is acceptable to be used for this dependency.
32 * @param __mp The provided to check.
33 * @return {@code true} if the provided is valid for this dependency.
34 * @throws NullPointerException On null arguments.
35 * @since 2017/12/31
37 boolean matchesProvided(MarkedProvided __mp)
38 throws NullPointerException;