/** Gathers and propagates the unique values of each distributive attribute. */ public void propagateDistributiveAttrs(Category cat, Category cat2) { if (_distributiveAttrs == null) return; resetDistrAttrVals(); cat.forall(gatherDistrAttrVals); if (cat2 != null) { cat2.forall(gatherDistrAttrVals); } cat.forall(propagateUniqueDistrAttrVals); if (cat2 != null) { cat2.forall(propagateUniqueDistrAttrVals); } }
/** Expands inheritsFrom links to feature equations for those features not explicitly listed. */ public void expandInheritsFrom(Category cat, Category cat2) { // index feature structures featStrucMap.clear(); cat.forall(indexFeatStrucs); if (cat2 != null) { cat2.forall(indexFeatStrucs); } // add feature eqs cat.forall(doInheritsFrom); if (cat2 != null) { cat2.forall(doInheritsFrom); } }