17f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael// Copyright 2016 The Bazel Authors. All rights reserved.
27f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael//
37f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael// Licensed under the Apache License, Version 2.0 (the "License");
47f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael// you may not use this file except in compliance with the License.
57f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael// You may obtain a copy of the License at
67f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael//
77f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael//    http://www.apache.org/licenses/LICENSE-2.0
87f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael//
97f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael// Unless required by applicable law or agreed to in writing, software
107f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael// distributed under the License is distributed on an "AS IS" BASIS,
117f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
127f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael// See the License for the specific language governing permissions and
137f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael// limitations under the License.
147f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichaelpackage com.google.devtools.build.android.desugar.testdata;
157f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael
167f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichaelimport java.util.List;
177f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichaelimport java.util.stream.Collectors;
187f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael
197f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichaelpublic class MethodReferenceSuperclass {
207f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael
217f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael  protected final List<String> names;
227f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael
237f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael  public MethodReferenceSuperclass(List<String> names) {
247f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael    this.names = names;
257f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael  }
267f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael
277f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael  // Method reference that causes a simple bridge method because the referenced method is private.
287f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael  // We want to make sure that bridge methods generated in subclasses don't clobber this one.
297f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael  public List<String> startsWithL() {
307f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael    return names
317f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael        .stream()
327f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael        .filter(this::startsWithL)
337f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael        .collect(Collectors.toList());
347f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael  }
357f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael
367f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael  private boolean startsWithL(String input) {
377f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael    return input.startsWith("L");
387f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael  }
397f6f08b9b78fd02cdea4157980a42b576ae3c504ajmichael}
40