diff options
| author | 2015-05-21 23:30:00 +0100 | |
|---|---|---|
| committer | 2015-05-21 23:30:00 +0100 | |
| commit | e3f452250e51b7271f3989c7dfd12e4422934942 (patch) | |
| tree | 5aa482f9a6e21eb318a3e23e7d8274d77c73faf6 /src/cuchaz/enigma/convert/ClassForest.java | |
| download | enigma-fork-e3f452250e51b7271f3989c7dfd12e4422934942.tar.gz enigma-fork-e3f452250e51b7271f3989c7dfd12e4422934942.tar.xz enigma-fork-e3f452250e51b7271f3989c7dfd12e4422934942.zip | |
Support Gradle alongside SSJB
This makes builds faster, simpler and better automated but still keeps
Cuchaz happy. :)
Diffstat (limited to 'src/cuchaz/enigma/convert/ClassForest.java')
| -rw-r--r-- | src/cuchaz/enigma/convert/ClassForest.java | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/cuchaz/enigma/convert/ClassForest.java b/src/cuchaz/enigma/convert/ClassForest.java new file mode 100644 index 0000000..0407730 --- /dev/null +++ b/src/cuchaz/enigma/convert/ClassForest.java | |||
| @@ -0,0 +1,60 @@ | |||
| 1 | /******************************************************************************* | ||
| 2 | * Copyright (c) 2015 Jeff Martin. | ||
| 3 | * All rights reserved. This program and the accompanying materials | ||
| 4 | * are made available under the terms of the GNU Lesser General Public | ||
| 5 | * License v3.0 which accompanies this distribution, and is available at | ||
| 6 | * http://www.gnu.org/licenses/lgpl.html | ||
| 7 | * | ||
| 8 | * Contributors: | ||
| 9 | * Jeff Martin - initial API and implementation | ||
| 10 | ******************************************************************************/ | ||
| 11 | package cuchaz.enigma.convert; | ||
| 12 | |||
| 13 | import java.util.Collection; | ||
| 14 | |||
| 15 | import com.google.common.collect.HashMultimap; | ||
| 16 | import com.google.common.collect.Multimap; | ||
| 17 | |||
| 18 | import cuchaz.enigma.mapping.ClassEntry; | ||
| 19 | |||
| 20 | |||
| 21 | public class ClassForest { | ||
| 22 | |||
| 23 | private ClassIdentifier m_identifier; | ||
| 24 | private Multimap<ClassIdentity,ClassEntry> m_forest; | ||
| 25 | |||
| 26 | public ClassForest(ClassIdentifier identifier) { | ||
| 27 | m_identifier = identifier; | ||
| 28 | m_forest = HashMultimap.create(); | ||
| 29 | } | ||
| 30 | |||
| 31 | public void addAll(Iterable<ClassEntry> entries) { | ||
| 32 | for (ClassEntry entry : entries) { | ||
| 33 | add(entry); | ||
| 34 | } | ||
| 35 | } | ||
| 36 | |||
| 37 | public void add(ClassEntry entry) { | ||
| 38 | try { | ||
| 39 | m_forest.put(m_identifier.identify(entry), entry); | ||
| 40 | } catch (ClassNotFoundException ex) { | ||
| 41 | throw new Error("Unable to find class " + entry.getName()); | ||
| 42 | } | ||
| 43 | } | ||
| 44 | |||
| 45 | public Collection<ClassIdentity> identities() { | ||
| 46 | return m_forest.keySet(); | ||
| 47 | } | ||
| 48 | |||
| 49 | public Collection<ClassEntry> classes() { | ||
| 50 | return m_forest.values(); | ||
| 51 | } | ||
| 52 | |||
| 53 | public Collection<ClassEntry> getClasses(ClassIdentity identity) { | ||
| 54 | return m_forest.get(identity); | ||
| 55 | } | ||
| 56 | |||
| 57 | public boolean containsIdentity(ClassIdentity identity) { | ||
| 58 | return m_forest.containsKey(identity); | ||
| 59 | } | ||
| 60 | } | ||