com.thoughtworks.qdox.model.JavaModuleDescriptor Maven / Gradle / Ivy
package com.thoughtworks.qdox.model;
import java.util.Collection;
public interface JavaModuleDescriptor
{
boolean isOpen();
String getName();
Collection getExports();
Collection getOpens();
Collection getProvides();
Collection getRequires();
Collection getUses();
/**
* Represents the following ModuleStatement:
*
* exports SOURCE [to TARGET{, TARGET}];
*
* where SOURCE matches a PackageName and TARGET matches a ModuleName
*
* @author Robert Scholte
*/
static interface JavaExports {
JavaPackage getSource();
Collection getTargets();
}
/**
* Represents the following ModuleStatement:
*
* opens SOURCE [to TARGET{, TARGET}];
*
* where SOURCE matches a PackageName and TARGET matches a ModuleName
*
* @author Robert Scholte
*/
static interface JavaOpens {
JavaPackage getSource();
Collection getTargets();
}
/**
* Represents the following ModuleStatement:
*
* provides SERVICE with PROVIDER;
*
* where SERVICE matches a TypeName and TARGET matches a TypeName
*
* @author Robert Scholte
*
*/
static interface JavaProvides {
JavaClass getService();
Collection getProviders();
}
/**
* Represents the following ModuleStatement:
*
* requires [public] [static] NAME;
*
* Where NAME matches a ModuleName
*
* @author Robert Scholte
*
*/
static interface JavaRequires {
JavaModule getModule();
boolean isTransitive();
boolean isStatic();
Collection getModifiers();
}
/**
* Represents the following ModuleStatement:
*
* uses NAME;
*
* Where NAME matches a TypeName
*
* @author Robert Scholte
*
*/
static interface JavaUses
{
JavaClass getService();
}
}