private void initFromValue(String value){
  try {
    Matcher m=trackNoPatternWithTotalCount.matcher(value);
    if (m.matches()) {
      this.extra=m.group(3);
      this.count=Integer.parseInt(m.group(1));
      this.rawCount=m.group(1);
      this.total=Integer.parseInt(m.group(2));
      this.rawTotal=m.group(2);
      return;
    }
    m=trackNoPattern.matcher(value);
    if (m.matches()) {
      this.extra=m.group(2);
      this.count=Integer.parseInt(m.group(1));
      this.rawCount=m.group(1);
    }
  }
 catch (  NumberFormatException nfe) {
    this.count=0;
  }
}

private void initFromValue ( String value ) { try { Matcher m = trackNoPatternWithTotalCount . matcher ( value ) ; if ( m . matches ( ) ) { this . extra = m . group ( 3 ) ; this . count = Integer . parseInt ( m . group ( 1 ) ) ; this . rawCount = m . group ( 1 ) ; this . total = Integer . parseInt ( m . group ( 2 ) ) ; this . rawTotal = m . group ( 2 ) ; return ; } m = trackNoPattern . matcher ( value ) ; if ( m . matches ( ) ) { this . extra = m . group ( 2 ) ; this . count = Integer . parseInt ( m . group ( 1 ) ) ; this . rawCount = m . group ( 1 ) ; } } catch ( NumberFormatException nfe ) { this . count = 0 ; } }
given a raw value that could contain both a count and total and extra stuff ( but needdnt contain anything tries to parse it )
