/** * Normalize a signature to make sure the name of the variables are always * the same. We change the names of the type variables to _n, where n is an * integer. n is incremented for every new name and already used names are * replaced with the _n name. * * @return a normalized signature */ public String normalize(String signature) { StringBuilder sb = new StringBuilder(); Map<String, String> map = new HashMap<>(); Rover rover = new Rover(signature); declare(sb, map, rover); if (rover.peek() == '(') { // method or constructor sb.append(rover.take('(')); while (rover.peek() != ')') { reference(sb, map, rover, true); } sb.append(rover.take(')')); reference(sb, map, rover, true); // return type } else { // field or class reference(sb, map, rover, true); // field type or super class while (!rover.isEOF()) { reference(sb, map, rover, true); // interfaces } } return sb.toString(); }
/** * Normalize a signature to make sure the name of the variables are always * the same. We change the names of the type variables to _n, where n is an * integer. n is incremented for every new name and already used names are * replaced with the _n name. * * @return a normalized signature */ public String normalize(String signature) { StringBuilder sb = new StringBuilder(); Map<String,String> map = new HashMap<String,String>(); Rover rover = new Rover(signature); declare(sb, map, rover); if (rover.peek() == '(') { // method or constructor sb.append(rover.take('(')); while (rover.peek() != ')') { reference(sb, map, rover, true); } sb.append(rover.take(')')); reference(sb, map, rover, true); // return type } else { // field or class reference(sb, map, rover, true); // field type or super class while (!rover.isEOF()) { reference(sb, map, rover, true); // interfaces } } return sb.toString(); }
/** * Normalize a signature to make sure the name of the variables are always * the same. We change the names of the type variables to _n, where n is an * integer. n is incremented for every new name and already used names are * replaced with the _n name. * * @return a normalized signature */ public String normalize(String signature) { StringBuilder sb = new StringBuilder(); Map<String,String> map = new HashMap<String,String>(); Rover rover = new Rover(signature); declare(sb, map, rover); if (rover.peek() == '(') { // method or constructor sb.append(rover.take('(')); while (rover.peek() != ')') { reference(sb, map, rover, true); } sb.append(rover.take(')')); reference(sb, map, rover, true); // return type } else { // field or class reference(sb, map, rover, true); // field type or super class while (!rover.isEOF()) { reference(sb, map, rover, true); // interfaces } } return sb.toString(); }
/** * Normalize a signature to make sure the name of the variables are always * the same. We change the names of the type variables to _n, where n is an * integer. n is incremented for every new name and already used names are * replaced with the _n name. * * @return a normalized signature */ public String normalize(String signature) { StringBuilder sb = new StringBuilder(); Map<String,String> map = new HashMap<String,String>(); Rover rover = new Rover(signature); declare(sb, map, rover); if (rover.peek() == '(') { // method or constructor sb.append(rover.take('(')); while (rover.peek() != ')') { reference(sb, map, rover, true); } sb.append(rover.take(')')); reference(sb, map, rover, true); // return type } else { // field or class reference(sb, map, rover, true); // field type or super class while (!rover.isEOF()) { reference(sb, map, rover, true); // interfaces } } return sb.toString(); }
/** * Normalize a signature to make sure the name of the variables are always * the same. We change the names of the type variables to _n, where n is an * integer. n is incremented for every new name and already used names are * replaced with the _n name. * * @return a normalized signature */ public String normalize(String signature) { StringBuilder sb = new StringBuilder(); Map<String, String> map = new HashMap<>(); Rover rover = new Rover(signature); declare(sb, map, rover); if (rover.peek() == '(') { // method or constructor sb.append(rover.take('(')); while (rover.peek() != ')') { reference(sb, map, rover, true); } sb.append(rover.take(')')); reference(sb, map, rover, true); // return type } else { // field or class reference(sb, map, rover, true); // field type or super class while (!rover.isEOF()) { reference(sb, map, rover, true); // interfaces } } return sb.toString(); }
Map<String, String> map = new HashMap<String, String>(); Rover rover = new Rover(signature); declare(sb, map, rover);