aboutsummaryrefslogtreecommitdiffstats
path: root/libraries/spongycastle/pg/src/main/java/org/spongycastle/openpgp/PGPUserAttributeSubpacketVector.java
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/spongycastle/pg/src/main/java/org/spongycastle/openpgp/PGPUserAttributeSubpacketVector.java')
-rw-r--r--libraries/spongycastle/pg/src/main/java/org/spongycastle/openpgp/PGPUserAttributeSubpacketVector.java93
1 files changed, 93 insertions, 0 deletions
diff --git a/libraries/spongycastle/pg/src/main/java/org/spongycastle/openpgp/PGPUserAttributeSubpacketVector.java b/libraries/spongycastle/pg/src/main/java/org/spongycastle/openpgp/PGPUserAttributeSubpacketVector.java
new file mode 100644
index 000000000..26d6c7368
--- /dev/null
+++ b/libraries/spongycastle/pg/src/main/java/org/spongycastle/openpgp/PGPUserAttributeSubpacketVector.java
@@ -0,0 +1,93 @@
+package org.spongycastle.openpgp;
+
+import org.spongycastle.bcpg.UserAttributeSubpacket;
+import org.spongycastle.bcpg.UserAttributeSubpacketTags;
+import org.spongycastle.bcpg.attr.ImageAttribute;
+
+/**
+ * Container for a list of user attribute subpackets.
+ */
+public class PGPUserAttributeSubpacketVector
+{
+ UserAttributeSubpacket[] packets;
+
+ PGPUserAttributeSubpacketVector(
+ UserAttributeSubpacket[] packets)
+ {
+ this.packets = packets;
+ }
+
+ public UserAttributeSubpacket getSubpacket(
+ int type)
+ {
+ for (int i = 0; i != packets.length; i++)
+ {
+ if (packets[i].getType() == type)
+ {
+ return packets[i];
+ }
+ }
+
+ return null;
+ }
+
+ public ImageAttribute getImageAttribute()
+ {
+ UserAttributeSubpacket p = this.getSubpacket(UserAttributeSubpacketTags.IMAGE_ATTRIBUTE);
+
+ if (p == null)
+ {
+ return null;
+ }
+
+ return (ImageAttribute)p;
+ }
+
+ UserAttributeSubpacket[] toSubpacketArray()
+ {
+ return packets;
+ }
+
+ public boolean equals(
+ Object o)
+ {
+ if (o == this)
+ {
+ return true;
+ }
+
+ if (o instanceof PGPUserAttributeSubpacketVector)
+ {
+ PGPUserAttributeSubpacketVector other = (PGPUserAttributeSubpacketVector)o;
+
+ if (other.packets.length != packets.length)
+ {
+ return false;
+ }
+
+ for (int i = 0; i != packets.length; i++)
+ {
+ if (!other.packets[i].equals(packets[i]))
+ {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ return false;
+ }
+
+ public int hashCode()
+ {
+ int code = 0;
+
+ for (int i = 0; i != packets.length; i++)
+ {
+ code ^= packets[i].hashCode();
+ }
+
+ return code;
+ }
+}