public List<ArtifactResult> dependencies() throws RepositoryException {
    List<ModuleInfo> infos = BytecodeUtils.readModuleInformation(name(), artifact());
    if (infos.isEmpty()) return Collections.emptyList();

    final List<ArtifactResult> results = new ArrayList<ArtifactResult>();
    for (ModuleInfo mi : infos) {
      results.add(
          new LazyArtifactResult(
              mi.getName(),
              mi.getVersion(),
              mi.isOptional()
                  ? ImportType.OPTIONAL
                  : (mi.isExport() ? ImportType.EXPORT : ImportType.UNDEFINED)));
    }
    return results;
  }