Expressions { public static String extractNameFromRepeater(String repeaterExpression) { String[] variableAndExpression = extractExactRepeater(repeaterExpression) .split(" in "); return variableAndExpression.length == 1 ? "" : variableAndExpression[1].trim(); }  static String getFirstExpression(String text); static boolean hasExpression(String text); static int getExpressionCount(String text); static String extractNameFromRepeater(String repeaterExpression); static String extractExactRepeater(String repeaterExpression); static String extractNameFromNgFor(String ngForExpression); static String replaceIndexBindingWithFunctionParameter(String text,
			int repeaterCount); static String extractControllerAs(String controllerExpression);  }
@Test public void extractsNameFromRepeater() throws Exception { assertThat(extractNameFromRepeater("item in items")).isEqualTo("items"); assertThat(extractNameFromRepeater("album in artist.albums")) .isEqualTo("artist.albums"); assertThat( extractNameFromRepeater("(name, age) in {'adam':10, 'amalie':12}")) .isEqualTo("{'adam':10, 'amalie':12}"); assertThat(extractNameFromRepeater("item in items track by $id(item)")) .isEqualTo("items"); assertThat(extractNameFromRepeater( "item in items | filter:searchText track by item.id")) .isEqualTo("items"); assertThat(extractNameFromRepeater("item in items | filter:x as results")) .isEqualTo("items"); assertThat(extractNameFromRepeater( "item in items | filter : x | orderBy : order | limitTo : limit as results")) .isEqualTo("items"); }