ScopedErrorReport.java revision 731b74f7f44e67312a1fc4161c4e0aae221b2417
169a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn/* 269a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn * Copyright (C) 2015 The Android Open Source Project 369a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn * 469a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn * Licensed under the Apache License, Version 2.0 (the "License"); 569a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn * you may not use this file except in compliance with the License. 669a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn * You may obtain a copy of the License at 769a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn * 869a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn * http://www.apache.org/licenses/LICENSE-2.0 969a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn * 1069a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn * Unless required by applicable law or agreed to in writing, software 1169a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn * distributed under the License is distributed on an "AS IS" BASIS, 1269a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1369a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn * See the License for the specific language governing permissions and 1469a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn * limitations under the License. 15251cb28132e456f81374c8f8a983a5a9ad9aaee8Darren Krahn */ 16251cb28132e456f81374c8f8a983a5a9ad9aaee8Darren Krahn 1769a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahnpackage android.databinding.tool.processing; 1869a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn 1969a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahnimport org.apache.commons.lang3.StringUtils; 2069a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn 2169a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahnimport android.databinding.tool.store.Location; 2269a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn 2369a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahnimport java.util.List; 2469a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn 2569a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahnpublic class ScopedErrorReport { 2669a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn 27251cb28132e456f81374c8f8a983a5a9ad9aaee8Darren Krahn private final String mFilePath; 2869a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn 2969a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn private final List<Location> mLocations; 3069a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn 31251cb28132e456f81374c8f8a983a5a9ad9aaee8Darren Krahn /** 32251cb28132e456f81374c8f8a983a5a9ad9aaee8Darren Krahn * Only created by Scope 3369a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn */ 3469a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn ScopedErrorReport(String filePath, List<Location> locations) { 3569a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn mFilePath = filePath; 3669a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn mLocations = locations; 3769a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn } 3869a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn 39251cb28132e456f81374c8f8a983a5a9ad9aaee8Darren Krahn public String getFilePath() { 4069a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn return mFilePath; 4169a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn } 4269a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn 4369a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn public List<Location> getLocations() { 4469a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn return mLocations; 45251cb28132e456f81374c8f8a983a5a9ad9aaee8Darren Krahn } 46251cb28132e456f81374c8f8a983a5a9ad9aaee8Darren Krahn 47251cb28132e456f81374c8f8a983a5a9ad9aaee8Darren Krahn public boolean isValid() { 48251cb28132e456f81374c8f8a983a5a9ad9aaee8Darren Krahn return StringUtils.isNotBlank(mFilePath); 49251cb28132e456f81374c8f8a983a5a9ad9aaee8Darren Krahn } 5069a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn 5169a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn public String toUserReadableString() { 5269a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn StringBuilder sb = new StringBuilder(); 5369a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn if (mFilePath != null) { 5469a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn sb.append("File:"); 5569a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn sb.append(mFilePath); 5669a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn } 5769a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn if (mLocations != null && mLocations.size() > 0) { 5869a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn if (mLocations.size() > 1) { 59c8eca23793dcaf933c4dace4127de710698b7a4cDarren Krahn sb.append("Locations:"); 60c8eca23793dcaf933c4dace4127de710698b7a4cDarren Krahn for (Location location : mLocations) { 61c8eca23793dcaf933c4dace4127de710698b7a4cDarren Krahn sb.append("\n ").append(location.toUserReadableString()); 62c8eca23793dcaf933c4dace4127de710698b7a4cDarren Krahn } 63c8eca23793dcaf933c4dace4127de710698b7a4cDarren Krahn } else { 64c8eca23793dcaf933c4dace4127de710698b7a4cDarren Krahn sb.append("\n Location: ").append(mLocations.get(0).toUserReadableString()); 65c8eca23793dcaf933c4dace4127de710698b7a4cDarren Krahn } 6669a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn } 6769a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn return sb.toString(); 6869a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn } 6969a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn} 7069a3dbc2bbbe0b304eb91376ff7f79c8bde995a1Darren Krahn