View Javadoc
1   /*-
2    * #%L
3    * io.earcam.instrumental.archive.jpms
4    * %%
5    * Copyright (C) 2018 earcam
6    * %%
7    * SPDX-License-Identifier: (BSD-3-Clause OR EPL-1.0 OR Apache-2.0 OR MIT)
8    * 
9    * You <b>must</b> choose to accept, in full - any individual or combination of 
10   * the following licenses:
11   * <ul>
12   * 	<li><a href="https://opensource.org/licenses/BSD-3-Clause">BSD-3-Clause</a></li>
13   * 	<li><a href="https://www.eclipse.org/legal/epl-v10.html">EPL-1.0</a></li>
14   * 	<li><a href="https://www.apache.org/licenses/LICENSE-2.0">Apache-2.0</a></li>
15   * 	<li><a href="https://opensource.org/licenses/MIT">MIT</a></li>
16   * </ul>
17   * #L%
18   */
19  package io.earcam.instrumental.archive.jpms;
20  
21  import java.util.Iterator;
22  import java.util.Set;
23  
24  import io.earcam.instrumental.module.jpms.ModuleInfo;
25  
26  /**
27   * <p>
28   * PackageModuleMapper interface.
29   * </p>
30   *
31   */
32  public interface PackageModuleMapper {
33  
34  	/**
35  	 * <p>
36  	 * moduleRequiredFor.
37  	 * </p>
38  	 *
39  	 * @param moduleName a {@link java.lang.CharSequence} object.
40  	 * @param requiredPackages a {@link java.util.Iterator} object.
41  	 * @return a {@link java.util.Set} object.
42  	 */
43  	public abstract Set<ModuleInfo> moduleRequiredFor(CharSequence moduleName, Iterator<? extends CharSequence> requiredPackages);
44  
45  
46  	/**
47  	 * <p>
48  	 * moduleOpenedFor.
49  	 * </p>
50  	 *
51  	 * @param moduleName a {@link java.lang.CharSequence} object.
52  	 * @param requiredPackages a {@link java.util.Iterator} object.
53  	 * @return a {@link java.util.Set} object.
54  	 */
55  	public abstract Set<ModuleInfo> moduleOpenedFor(CharSequence moduleName, Iterator<? extends CharSequence> requiredPackages);
56  }