/* * Copyright 2014 Shazam Entertainment Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. * * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. */ package com.shazam.fork.summary; import com.android.ddmlib.logcat.LogCatMessage; import com.android.ddmlib.testrunner.TestIdentifier; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.shazam.fork.system.io.FileManager; import com.shazam.fork.system.io.FileType; import java.io.*; import java.util.List; public class JsonLogCatRetriever implements LogCatRetriever { private final Gson gson; private final FileManager fileManager; public JsonLogCatRetriever(Gson gson, FileManager fileManager) { this.gson = gson; this.fileManager = fileManager; } @Override public List<LogCatMessage> retrieveLogCat(String poolName, String safeSerial, TestIdentifier testIdentifier) { File logcatJsonFile = fileManager.getFile(FileType.JSON_LOG, poolName, safeSerial, testIdentifier); try { FileReader fileReader = new FileReader(logcatJsonFile); return gson.fromJson(fileReader, new TypeToken<List<LogCatMessage>>() {}.getType()); } catch (FileNotFoundException e) { throw new RuntimeException(e); } } }