private synchronized <T extends BaseTagListener>void doSubscriptionByName(final Set<String> regexList,final T listener){
  if (regexList == null) {
    String error="Called with null parameter (regex list). Ignoring request.";
    log.warn("doSubscriptionByName() : " + error);
    throw new IllegalArgumentException(error);
  }
  if (listener == null) {
    String error="Called with null parameter (BaseTagListener). Ignoring request.";
    log.warn("doSubscriptionByName() : " + error);
    throw new IllegalArgumentException(error);
  }
  if (regexList.isEmpty()) {
    String info="Called with empty regex list. Ignoring request.";
    log.info("doSubscriptionByName() : " + info);
    return;
  }
  if (log.isDebugEnabled()) {
    log.debug(String.format("doTagSubscription() : called for %d tags.",regexList.size()));
  }
  try {
    cache.subscribeByRegex(regexList,listener);
    tagUpdateListeners.add(listener);
  }
 catch (  CacheSynchronizationException cse) {
    log.error("doSubscriptionByName() : Cache error occured while subscribing to data tags.",cse);
    throw cse;
  }
}

private synchronized < T extends BaseTagListener > void doSubscriptionByName ( final Set < String > regexList , final T listener ) { if ( regexList == null ) { String error = "Called with null parameter (regex list). Ignoring request." ; log . warn ( "doSubscriptionByName() : " + error ) ; throw new IllegalArgumentException ( error ) ; } if ( listener == null ) { String error = "Called with null parameter (BaseTagListener). Ignoring request." ; log . warn ( "doSubscriptionByName() : " + error ) ; throw new IllegalArgumentException ( error ) ; } if ( regexList . isEmpty ( ) ) { String info = "Called with empty regex list. Ignoring request." ; log . info ( "doSubscriptionByName() : " + info ) ; return ; } if ( log . isDebugEnabled ( ) ) { log . debug ( String . format ( "doTagSubscription() : called for %d tags." , regexList . size ( ) ) ) ; } try { cache . subscribeByRegex ( regexList , listener ) ; tagUpdateListeners . add ( listener ) ; } catch ( CacheSynchronizationException cse ) { log . error ( "doSubscriptionByName() : Cache error occured while subscribing to data tags." , cse ) ; throw cse ; } }
inner method that handles the tag subscription .
