blob: a14edf5180ec90a850d5a18e90712baa504f4a04 [file] [log] [blame]
Damien Martin-Guillerezf88f4d82015-09-25 13:56:55 +00001// Copyright 2014 The Bazel Authors. All rights reserved.
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +01002//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package com.google.devtools.build.lib.util;
16
17/**
18 * This class serves as a base implementation for a {@code CharSequence}
nharmata81d675b2021-06-15 13:05:56 -070019 * that delays string construction (mostly till the execution phase).
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +010020 */
nharmata81d675b2021-06-15 13:05:56 -070021public abstract class OnDemandString implements CharSequence {
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +010022
23 @Override
24 public char charAt(int index) {
25 throw new UnsupportedOperationException();
26 }
27
28 @Override
29 public int length() {
30 return toString().length();
31 }
32
33 @Override
34 public CharSequence subSequence(int start, int end) {
35 throw new UnsupportedOperationException();
36 }
37
38}