From 99a4d802fbf7593c62c5cc36620e68cfc0b8c4b6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Thu, 18 Apr 2013 06:11:12 +0200 Subject: [PATCH] Make class thread-safe. --- .../java/net/pterodactylus/xdcc/data/Download.java | 32 ++++++++++++---------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/src/main/java/net/pterodactylus/xdcc/data/Download.java b/src/main/java/net/pterodactylus/xdcc/data/Download.java index 926adad..12b0129 100644 --- a/src/main/java/net/pterodactylus/xdcc/data/Download.java +++ b/src/main/java/net/pterodactylus/xdcc/data/Download.java @@ -21,6 +21,8 @@ import static com.google.common.base.Preconditions.checkNotNull; import java.io.OutputStream; import java.net.InetAddress; +import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.atomic.AtomicReference; import net.pterodactylus.irc.DccReceiver; @@ -49,19 +51,19 @@ public class Download { private final Pack pack; /** The name of the file being downloaded. */ - private String filename; + private final AtomicReference filename = new AtomicReference(); /** The size of the file being downloaded. */ - private long filesize; + private final AtomicLong filesize = new AtomicLong(); /** The remote address. */ - private InetAddress remoteAddress; + private final AtomicReference remoteAddress = new AtomicReference(); /** The output stream. */ - private OutputStream outputStream; + private final AtomicReference outputStream = new AtomicReference(); /** The DCC receiver. */ - private DccReceiver dccReceiver; + private final AtomicReference dccReceiver = new AtomicReference(); /** * Creates a new download. @@ -104,7 +106,7 @@ public class Download { * @return The full name of the file */ public String filename() { - return filename; + return filename.get(); } /** @@ -113,7 +115,7 @@ public class Download { * @return The size of the file */ public long filesize() { - return filesize; + return filesize.get(); } /** @@ -122,7 +124,7 @@ public class Download { * @return The remote address to download from */ public InetAddress remoteAddress() { - return remoteAddress; + return remoteAddress.get(); } /** @@ -131,7 +133,7 @@ public class Download { * @return The output stream */ public OutputStream outputStream() { - return outputStream; + return outputStream.get(); } /** @@ -140,7 +142,7 @@ public class Download { * @return The DCC receiver */ public DccReceiver dccReceiver() { - return dccReceiver; + return dccReceiver.get(); } // @@ -155,7 +157,7 @@ public class Download { * @return This download */ public Download filename(String filename) { - this.filename = filename; + this.filename.set(filename); return this; } @@ -167,7 +169,7 @@ public class Download { * @return This download */ public Download filesize(long filesize) { - this.filesize = filesize; + this.filesize.set(filesize); return this; } @@ -179,7 +181,7 @@ public class Download { * @return This download */ public Download remoteAddress(InetAddress remoteAddress) { - this.remoteAddress = remoteAddress; + this.remoteAddress.set(remoteAddress); return this; } @@ -191,7 +193,7 @@ public class Download { * @return This download */ public Download outputStream(OutputStream outputStream) { - this.outputStream = outputStream; + this.outputStream.set(outputStream); return this; } @@ -203,7 +205,7 @@ public class Download { * @return This download */ public Download dccReceiver(DccReceiver dccReceiver) { - this.dccReceiver = dccReceiver; + this.dccReceiver.set(dccReceiver); return this; } -- 2.7.4