public @Nonnull Block provideBlock(@Nonnull String name){
  Block b=getBlock(name);
  if (b != null) {
    return b;
  }
  if (name.startsWith(getSystemPrefix() + typeLetter())) {
    b=createNewBlock(name,null);
  }
 else {
    b=createNewBlock(makeSystemName(name),null);
  }
  return b;
}

public @ Nonnull Block provideBlock ( @ Nonnull String name ) { Block b = getBlock ( name ) ; if ( b != null ) { return b ; } if ( name . startsWith ( getSystemPrefix ( ) + typeLetter ( ) ) ) { b = createNewBlock ( name , null ) ; } else { b = createNewBlock ( makeSystemName ( name ) , null ) ; } return b ; }
if the block exists , return it , otherwise create a new one and return it . if the argument starts with the system prefix and type letter , usually " ib " , then the argument is considered a system name , otherwise it ' s considered a user name and a system name is automatically created .
