uk.ac.cam.cl.ijam
Class ModuleFile

java.lang.Object
  extended by uk.ac.cam.cl.ijam.ModuleFile

public class ModuleFile
extends java.lang.Object

ModuleFile class represents the contents of a ".spkg" file. It is created directly by our JavaCC parser for superpackages (see Parser.jj). As in the Java Module System, we have members specified as Java packages, imports specified as module definition names, and exports specified as individual fully-qualified class names.

A superpackage can be marked as "replicating", which means that if it is imported in a default manner (not with "own", "as", or explicit "shared"), a new instance will be created.

Note that we do not support sub-modules or any *-notation in the module files.


Nested Class Summary
static class ModuleFile.Repl
           
 
Field Summary
 java.util.List<java.lang.String> exports
           
(package private)  java.io.File file
           
 java.util.List<ImportDependency> imports
           
 java.util.List<PN> members
           
(package private)  java.lang.String name
           
(package private)  ModuleFile.Repl repl
           
 
Constructor Summary
ModuleFile(java.io.File file, java.lang.String name, ModuleFile.Repl repl)
           
 
Method Summary
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

file

final java.io.File file

name

final java.lang.String name

repl

final ModuleFile.Repl repl

members

public final java.util.List<PN> members

imports

public final java.util.List<ImportDependency> imports

exports

public final java.util.List<java.lang.String> exports
Constructor Detail

ModuleFile

public ModuleFile(java.io.File file,
                  java.lang.String name,
                  ModuleFile.Repl repl)