Revert "Revert "Enforce minor version uprevs.""

This reverts commit 976ae898472e03f31c56eb1df62c81842e0ccb90.

Test: mma

Change-Id: Ib2f0be2b4cbf809831500ac536453237523904ec
diff --git a/Coordinator.h b/Coordinator.h
index 34298a4..0aefb40 100644
--- a/Coordinator.h
+++ b/Coordinator.h
@@ -87,6 +87,11 @@
             const FQName &package,
             std::vector<FQName> *packageInterfaces) const;
 
+    // Enforce a set of restrictions on a set of packages. These include:
+    //    - minor version upgrades
+    // "packages" contains names like "android.hardware.nfc@1.1".
+    status_t enforceRestrictionsOnPackage(const FQName &fqName);
+
     static bool MakeParentHierarchy(const std::string &path);
 
 private:
@@ -98,11 +103,19 @@
     // "hardware/interfaces".
     std::vector<std::string> mPackageRootPaths;
     std::vector<std::string> mPackageRoots;
+
+    // cache to parse().
     std::map<FQName, AST *> mCache;
 
+    // cache to enforceRestrictionsOnPackage().
+    std::set<FQName> mPackagesEnforced;
+
     std::vector<std::string>::const_iterator findPackageRoot(
             const FQName &fqName) const;
 
+    // Rules of enforceRestrictionsOnPackage are listed below.
+    status_t enforceMinorVersionUprevs(const FQName &fqName);
+
     DISALLOW_COPY_AND_ASSIGN(Coordinator);
 };