From 5540c815de36e316d0749ce2163f12c61895b327 Mon Sep 17 00:00:00 2001
From: asiekierka
Date: Wed, 17 Aug 2016 18:35:12 +0200
Subject: Revert "Removed unused methods"
This reverts commit 1742190f784d0d62e7cc869eebafdfe1927e448f.
---
.../java/cuchaz/enigma/convert/ClassMatch.java | 84 ++++++++++++++++++++++
1 file changed, 84 insertions(+)
create mode 100644 src/main/java/cuchaz/enigma/convert/ClassMatch.java
(limited to 'src/main/java/cuchaz/enigma/convert/ClassMatch.java')
diff --git a/src/main/java/cuchaz/enigma/convert/ClassMatch.java b/src/main/java/cuchaz/enigma/convert/ClassMatch.java
new file mode 100644
index 0000000..422529e
--- /dev/null
+++ b/src/main/java/cuchaz/enigma/convert/ClassMatch.java
@@ -0,0 +1,84 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Jeff Martin.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser General Public
+ * License v3.0 which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * Contributors:
+ * Jeff Martin - initial API and implementation
+ ******************************************************************************/
+package cuchaz.enigma.convert;
+
+import com.google.common.collect.Sets;
+
+import java.util.Collection;
+import java.util.Set;
+
+import cuchaz.enigma.Util;
+import cuchaz.enigma.mapping.ClassEntry;
+
+
+public class ClassMatch {
+
+ public Set sourceClasses;
+ public Set destClasses;
+
+ public ClassMatch(Collection sourceClasses, Collection destClasses) {
+ this.sourceClasses = Sets.newHashSet(sourceClasses);
+ this.destClasses = Sets.newHashSet(destClasses);
+ }
+
+ public ClassMatch(ClassEntry sourceClass, ClassEntry destClass) {
+ sourceClasses = Sets.newHashSet();
+ if (sourceClass != null) {
+ sourceClasses.add(sourceClass);
+ }
+ destClasses = Sets.newHashSet();
+ if (destClass != null) {
+ destClasses.add(destClass);
+ }
+ }
+
+ public boolean isMatched() {
+ return sourceClasses.size() > 0 && destClasses.size() > 0;
+ }
+
+ public boolean isAmbiguous() {
+ return sourceClasses.size() > 1 || destClasses.size() > 1;
+ }
+
+ public ClassEntry getUniqueSource() {
+ if (sourceClasses.size() != 1) {
+ throw new IllegalStateException("Match has ambiguous source!");
+ }
+ return sourceClasses.iterator().next();
+ }
+
+ public ClassEntry getUniqueDest() {
+ if (destClasses.size() != 1) {
+ throw new IllegalStateException("Match has ambiguous source!");
+ }
+ return destClasses.iterator().next();
+ }
+
+ public Set intersectSourceClasses(Set classes) {
+ Set intersection = Sets.newHashSet(sourceClasses);
+ intersection.retainAll(classes);
+ return intersection;
+ }
+
+ @Override
+ public int hashCode() {
+ return Util.combineHashesOrdered(sourceClasses, destClasses);
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ return other instanceof ClassMatch && equals((ClassMatch) other);
+ }
+
+ public boolean equals(ClassMatch other) {
+ return this.sourceClasses.equals(other.sourceClasses) && this.destClasses.equals(other.destClasses);
+ }
+}
--
cgit v1.2.3