blob: 019e18c2a76303e2e0d42674318dd6e47c4bb1da [file] [log] [blame]
// Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.shaking;
import com.android.tools.r8.origin.Origin;
import com.google.common.annotations.VisibleForTesting;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import joptsimple.internal.Strings;
public class ProguardConfigurationSourceStrings implements ProguardConfigurationSource {
private final Path basePath;
private final List<String> config;
private final Origin origin;
/**
* Creates {@link ProguardConfigurationSource} with raw {@param config}, along with
* {@param basePath}, which allows all other options that use a relative path to reach out
* to desired paths appropriately.
*/
public ProguardConfigurationSourceStrings(List<String> config, Path basePath, Origin origin) {
this.basePath = basePath;
this.config = config;
this.origin = origin;
}
private ProguardConfigurationSourceStrings(List<String> config) {
this(config, Paths.get("."), Origin.unknown());
}
@VisibleForTesting
static ProguardConfigurationSourceStrings createConfigurationForTesting(
List<String> config) {
return new ProguardConfigurationSourceStrings(config);
}
@Override
public String get() {
return Strings.join(config, System.lineSeparator());
}
@Override
public Path getBaseDirectory() {
return basePath;
}
@Override
public String getName() {
return "<no file>";
}
@Override
public Origin getOrigin() {
return origin;
}
}