blob: 30fbd0b153382405077262d6c815c78612b41191 [file] [log] [blame]
/*
* Copyright (C) 2019 The Android Open Source Project
*
* 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.android.ide.common.resources.deprecated;
import com.android.ide.common.rendering.api.ResourceValue;
import com.android.ide.common.resources.configuration.Configurable;
import com.android.ide.common.resources.configuration.FolderConfiguration;
import com.android.resources.ResourceType;
/**
* @deprecated This class is part of an obsolete resource repository system that is no longer used
* in production code. The class is preserved temporarily for LayoutLib tests.
*/
@Deprecated
public abstract class ResourceFile implements Configurable {
private final TestFileWrapper mFile;
private final ResourceFolder mFolder;
protected ResourceFile(TestFileWrapper file, ResourceFolder folder) {
mFile = file;
mFolder = folder;
}
protected abstract void load(ScanningContext context);
protected abstract void update(ScanningContext context);
@Override
public FolderConfiguration getConfiguration() {
return mFolder.getConfiguration();
}
/**
* Returns the IFile associated with the ResourceFile.
*/
public final TestFileWrapper getFile() {
return mFile;
}
public final ResourceRepository getRepository() {
return mFolder.getRepository();
}
/**
* Returns whether the resource is a framework resource.
*/
public final boolean isFramework() {
return mFolder.getRepository().isFrameworkRepository();
}
/**
* Returns the value of a resource generated by this file by {@link ResourceType} and name.
* <p>If no resource match, <code>null</code> is returned.
* @param type the type of the resource.
* @param name the name of the resource.
*/
public abstract ResourceValue getValue(ResourceType type, String name);
@Override
public String toString() {
return mFile.toString();
}
}