bcv-vf/src/main/java/the/bytecode/club/bytecodeviewer/resources/importing/Import.java

68 lines
2.9 KiB
Java

package the.bytecode.club.bytecodeviewer.resources.importing;
import java.util.HashMap;
import the.bytecode.club.bytecodeviewer.resources.importing.impl.APKResourceImporter;
import the.bytecode.club.bytecodeviewer.resources.importing.impl.ClassResourceImporter;
import the.bytecode.club.bytecodeviewer.resources.importing.impl.DEXResourceImporter;
import the.bytecode.club.bytecodeviewer.resources.importing.impl.DirectoryResourceImporter;
import the.bytecode.club.bytecodeviewer.resources.importing.impl.FileResourceImporter;
import the.bytecode.club.bytecodeviewer.resources.importing.impl.XAPKResourceImporter;
import the.bytecode.club.bytecodeviewer.resources.importing.impl.ZipResourceImporter;
/***************************************************************************
* Bytecode Viewer (BCV) - Java & Android Reverse Engineering Suite *
* Copyright (C) 2014 Kalen 'Konloch' Kinloch - http://bytecodeviewer.com *
* *
* This program is free software: you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation, either version 3 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
/**
* @author Konloch
* @since 6/26/2021
*/
public enum Import
{
DIRECTORY(new DirectoryResourceImporter()),
FILE(new FileResourceImporter()),
//TODO ear needs to import the same as XAPK
//TODO war needs to add the /libs correctly similar to XAPK
ZIP(new ZipResourceImporter(), "zip", "jar", "war", "ear"),
CLASS(new ClassResourceImporter(), "class"),
XAPK(new XAPKResourceImporter(), "xapk"),
APK(new APKResourceImporter(), "apk"),
DEX(new DEXResourceImporter(), "dex"),
;
public static final HashMap<String, Import> extensionMap = new HashMap<>();
private final Importer importer;
private final String[] extensions;
static
{
for(Import i : values())
for(String s : i.extensions)
extensionMap.put(s, i);
}
Import(Importer importer, String... extensions) {this.importer = importer;
this.extensions = extensions;
}
public Importer getImporter()
{
return importer;
}
}