/**
  * Creates a {@link mondrian.rolap.aggmatcher.Recognizer.Matcher} for the given measure name
  * (symbolic name), column name and aggregate name (sum, count, etc.).
  */
 public Recognizer.Matcher getMeasureMatcher(
     final String measureName, final String measureColumnName, final String aggregateName) {
   DefaultDef.AggRule rule = getAggRule();
   Recognizer.Matcher matcher =
       rule.getMeasureMap().getMatcher(measureName, measureColumnName, aggregateName);
   return matcher;
 }
 /**
  * Gets the {@link mondrian.rolap.aggmatcher.Recognizer.Matcher} for columns that should be
  * ignored.
  *
  * @return the {@link mondrian.rolap.aggmatcher.Recognizer.Matcher} for columns that should be
  *     ignored.
  */
 public Recognizer.Matcher getFactCountMatcher() {
   if (factCountMatcher == null) {
     // get default AggRule
     DefaultDef.AggRule rule = getAggRule();
     DefaultDef.FactCountMatch factCountMatch = rule.getFactCountMatch();
     factCountMatcher = factCountMatch.getMatcher();
   }
   return factCountMatcher;
 }
 /**
  * Gets a {@link mondrian.rolap.aggmatcher.Recognizer.Matcher} for a given level's hierarchy's
  * name, level name and column name.
  */
 public Recognizer.Matcher getLevelMatcher(
     final String usagePrefix,
     final String hierarchyName,
     final String levelName,
     final String levelColumnName) {
   DefaultDef.AggRule rule = getAggRule();
   Recognizer.Matcher matcher =
       rule.getLevelMap().getMatcher(usagePrefix, hierarchyName, levelName, levelColumnName);
   return matcher;
 }
 /**
  * Gets the {@link mondrian.rolap.aggmatcher.Recognizer.Matcher} for this foreign key column name.
  *
  * @param foreignKeyName Name of a foreign key column
  */
 public Recognizer.Matcher getForeignKeyMatcher(String foreignKeyName) {
   Recognizer.Matcher matcher = foreignKeyMatcherMap.get(foreignKeyName);
   if (matcher == null) {
     // get default AggRule
     DefaultDef.AggRule rule = getAggRule();
     DefaultDef.ForeignKeyMatch foreignKeyMatch = rule.getForeignKeyMatch();
     matcher = foreignKeyMatch.getMatcher(foreignKeyName);
     foreignKeyMatcherMap.put(foreignKeyName, matcher);
   }
   return matcher;
 }
 /**
  * Gets the {@link mondrian.rolap.aggmatcher.Recognizer.Matcher} for this tableName.
  *
  * @param tableName
  */
 public Recognizer.Matcher getTableMatcher(final String tableName) {
   Recognizer.Matcher matcher = factToPattern.get(tableName);
   if (matcher == null) {
     // get default AggRule
     DefaultDef.AggRule rule = getAggRule();
     DefaultDef.TableMatch tableMatch = rule.getTableMatch();
     matcher = tableMatch.getMatcher(tableName);
     factToPattern.put(tableName, matcher);
   }
   return matcher;
 }
 /** Gets the {@link mondrian.rolap.aggmatcher.Recognizer.Matcher} for the fact count column. */
 public Recognizer.Matcher getIgnoreMatcher() {
   if (ignoreMatcherMap == null) {
     // get default AggRule
     DefaultDef.AggRule rule = getAggRule();
     DefaultDef.IgnoreMap ignoreMatch = rule.getIgnoreMap();
     if (ignoreMatch == null) {
       ignoreMatcherMap =
           new Recognizer.Matcher() {
             public boolean matches(String name) {
               return false;
             }
           };
     } else {
       ignoreMatcherMap = ignoreMatch.getMatcher();
     }
   }
   return ignoreMatcherMap;
 }