X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=inline;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ftext%2FPartContainer.java;h=3444d19e08fa9c09c745a3851c100400967c83a9;hb=15f4c53dd87e07b452a04ec2d0e022197e09bd92;hp=34383a5adad9bd4e1dd05f498e1c1e0a82c0c6d3;hpb=ab7fada54ed08b0a8d9ce9c606cbea29c3c3f819;p=Sone.git
diff --git a/src/main/java/net/pterodactylus/sone/text/PartContainer.java b/src/main/java/net/pterodactylus/sone/text/PartContainer.java
index 34383a5..3444d19 100644
--- a/src/main/java/net/pterodactylus/sone/text/PartContainer.java
+++ b/src/main/java/net/pterodactylus/sone/text/PartContainer.java
@@ -1,5 +1,5 @@
/*
- * Sone - PartContainer.java - Copyright © 2010 David Roden
+ * Sone - PartContainer.java - Copyright © 2010â2016 David Roden
*
* 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
@@ -17,15 +17,15 @@
package net.pterodactylus.sone.text;
-import java.io.IOException;
-import java.io.StringWriter;
-import java.io.Writer;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Deque;
import java.util.Iterator;
import java.util.List;
import java.util.NoSuchElementException;
+import java.util.Objects;
+
+import javax.annotation.Nonnull;
/**
* Part implementation that can contain an arbitrary amount of other parts.
@@ -34,63 +34,39 @@ import java.util.NoSuchElementException;
*
* @author David âBombeâ Roden
*/
-public class PartContainer implements Iterable {
+public class PartContainer implements Part, Iterable {
- /** The parts to render. */
private final List parts = new ArrayList();
- //
- // ACCESSORS
- //
-
- /**
- * Adds a part to render.
- *
- * @param part
- * The part to add
- */
- public void add(Part part) {
- parts.add(part);
+ public void add(@Nonnull Part part) {
+ parts.add(Objects.requireNonNull(part));
}
- /**
- * Returns the part at the given index.
- *
- * @param index
- * The index of the part
- * @return The part
- */
+ @Nonnull
public Part getPart(int index) {
return parts.get(index);
}
- /**
- * Removes the part at the given index.
- *
- * @param index
- * The index of the part to remove
- */
public void removePart(int index) {
parts.remove(index);
}
- /**
- * Returns the number of parts.
- *
- * @return The number of parts
- */
public int size() {
return parts.size();
}
- //
- // ITERABLE METHODS
- //
+ @Override
+ @Nonnull
+ public String getText() {
+ StringBuilder partText = new StringBuilder();
+ for (Part part : parts) {
+ partText.append(part.getText());
+ }
+ return partText.toString();
+ }
- /**
- * {@inheritDoc}
- */
@Override
+ @Nonnull
@SuppressWarnings("synthetic-access")
public Iterator iterator() {
return new Iterator() {