// Path: src/protocolsupportpocketstuff/api/modals/elements/ModalImage.java
// public class ModalImage {
// 
// 	private final transient ModalImageType modalImageType;
// 	private final String type;
// 	private String data;
// 
// 	/***
// 	 * Constructs a new ModalImage with the required parameters.
// 	 * @param imageType - The type of the image.
// 	 * @param data - The data (url / path) of the image.
// 	 */
// 	public ModalImage(ModalImageType imageType, String data) {
// 		this.modalImageType = imageType;
// 		this.type = imageType.getPeName();
// 		this.data = data;
// 	}
// 
// 	/***
// 	 * @return the ImageType of this ModalImage.
// 	 */
// 	public ModalImageType getType() {
// 		return modalImageType;
// 	}
// 
// 	/***
// 	 * @return the internal representation of this ModalImage's type.
// 	 */
// 	public String getPeType() {
// 		return type;
// 	}
// 
// 	/***
// 	 * @return the url / path to the image.
// 	 */
// 	public String getData() {
// 		return data;
// 	}
// 
// 	/***
// 	 * Sets the url / path to the image.
// 	 * @param data
// 	 * @return this
// 	 */
// 	public ModalImage setData(String data) {
// 		this.data = data;
// 		return this;
// 	}
// 
// 	/***
// 	 * Fully clones the modalimage.
// 	 * @return a new modalImage.
// 	 */
// 	public ModalImage clone() {
// 		return new ModalImage(getType(), getData());
// 	}
// 
// 	/***
// 	 * The types a ModalImage can be.
// 	 */
// 	public enum ModalImageType {
// 
// 		/***
// 		 * Client or local image.
// 		 * The client will expect a local path to
// 		 * an image contained in the resourcestack
// 		 * if this type is used.
// 		 */
// 		CLIENT_IMAGE("path"),
// 
// 		/***
// 		 * External or remote image.
// 		 * The client will expect an utl to
// 		 * an image if this type is used.
// 		 */
// 		EXTERNAL_IMAGE("url");
// 
// 		private String peName;
// 
// 		ModalImageType(String peName) {
// 			this.peName = peName;
// 		}
// 
// 		/***
// 		 * @return the internal PE name.
// 		 */
// 		public String getPeName() {
// 			return peName;
// 		}
// 
// 	}
// 
// }
// 
// Path: src/protocolsupportpocketstuff/api/modals/elements/ModalUIElement.java
// public abstract class ModalUIElement {
// 
// 	private String text;
// 
// 	/***
// 	 * Constructs a ModalUIElement with the required parameters.
// 	 * @param text - the text of the element.
// 	 */
// 	protected ModalUIElement(String text) {
// 		this.text = text;
// 	}
// 
// 	/***
// 	 * Sets this ModalUIElement's text.
// 	 * @param text
// 	 * @return this
// 	 */
// 	public ModalUIElement setText(String text) {
// 		this.text = text;
// 		return this;
// 	}
// 
// 	/***
// 	 * Gets the text of a ModalUIElement.
// 	 * @return the text.
// 	 */
// 	public String getText() {
// 		return text;
// 	}
// 
// 	/***
// 	 * Fully clones a ModalUIElement
// 	 * @return the cloned element.
// 	 */
// 	public abstract ModalUIElement clone();
// 
// }


import protocolsupportpocketstuff.api.modals.elements.ModalImage;
import protocolsupportpocketstuff.api.modals.elements.ModalUIElement;
package protocolsupportpocketstuff.api.modals.elements.simple;


/***
 * Implementation of the simple UIElement: Button.
 * A button needs to have either text or an image and text.
 */
public class ModalButton extends ModalUIElement {

	private ModalImage image;

	/***
	 * Constructs a new ModalButton with text.
	 * @param text - The button's text.
	 */
// Path: src/protocolsupportpocketstuff/api/modals/elements/ModalImage.java
// public class ModalImage {
// 
// 	private final transient ModalImageType modalImageType;
// 	private final String type;
// 	private String data;
// 
// 	/***
// 	 * Constructs a new ModalImage with the required parameters.
// 	 * @param imageType - The type of the image.
// 	 * @param data - The data (url / path) of the image.
// 	 */
// 	public ModalImage(ModalImageType imageType, String data) {
// 		this.modalImageType = imageType;
// 		this.type = imageType.getPeName();
// 		this.data = data;
// 	}
// 
// 	/***
// 	 * @return the ImageType of this ModalImage.
// 	 */
// 	public ModalImageType getType() {
// 		return modalImageType;
// 	}
// 
// 	/***
// 	 * @return the internal representation of this ModalImage's type.
// 	 */
// 	public String getPeType() {
// 		return type;
// 	}
// 
// 	/***
// 	 * @return the url / path to the image.
// 	 */
// 	public String getData() {
// 		return data;
// 	}
// 
// 	/***
// 	 * Sets the url / path to the image.
// 	 * @param data
// 	 * @return this
// 	 */
// 	public ModalImage setData(String data) {
// 		this.data = data;
// 		return this;
// 	}
// 
// 	/***
// 	 * Fully clones the modalimage.
// 	 * @return a new modalImage.
// 	 */
// 	public ModalImage clone() {
// 		return new ModalImage(getType(), getData());
// 	}
// 
// 	/***
// 	 * The types a ModalImage can be.
// 	 */
// 	public enum ModalImageType {
// 
// 		/***
// 		 * Client or local image.
// 		 * The client will expect a local path to
// 		 * an image contained in the resourcestack
// 		 * if this type is used.
// 		 */
// 		CLIENT_IMAGE("path"),
// 
// 		/***
// 		 * External or remote image.
// 		 * The client will expect an utl to
// 		 * an image if this type is used.
// 		 */
// 		EXTERNAL_IMAGE("url");
// 
// 		private String peName;
// 
// 		ModalImageType(String peName) {
// 			this.peName = peName;
// 		}
// 
// 		/***
// 		 * @return the internal PE name.
// 		 */
// 		public String getPeName() {
// 			return peName;
// 		}
// 
// 	}
// 
// }
// 
// Path: src/protocolsupportpocketstuff/api/modals/elements/ModalUIElement.java
// public abstract class ModalUIElement {
// 
// 	private String text;
// 
// 	/***
// 	 * Constructs a ModalUIElement with the required parameters.
// 	 * @param text - the text of the element.
// 	 */
// 	protected ModalUIElement(String text) {
// 		this.text = text;
// 	}
// 
// 	/***
// 	 * Sets this ModalUIElement's text.
// 	 * @param text
// 	 * @return this
// 	 */
// 	public ModalUIElement setText(String text) {
// 		this.text = text;
// 		return this;
// 	}
// 
// 	/***
// 	 * Gets the text of a ModalUIElement.
// 	 * @return the text.
// 	 */
// 	public String getText() {
// 		return text;
// 	}
// 
// 	/***
// 	 * Fully clones a ModalUIElement
// 	 * @return the cloned element.
// 	 */
// 	public abstract ModalUIElement clone();
// 
// }


// Path: src/protocolsupportpocketstuff/api/modals/elements/simple/ModalButton.java
import protocolsupportpocketstuff.api.modals.elements.ModalImage;
import protocolsupportpocketstuff.api.modals.elements.ModalUIElement;

package protocolsupportpocketstuff.api.modals.elements.simple;


/***
 * Implementation of the simple UIElement: Button.
 * A button needs to have either text or an image and text.
 */
public class ModalButton extends ModalUIElement {

	private ModalImage image;

	/***
	 * Constructs a new ModalButton with text.
	 * @param text - The button's text.
	 */
	public ModalButton(String text) {