From b7b27e763aecb9651403a0934bddd38fb1898def Mon Sep 17 00:00:00 2001 From: Victor Häggqvist Date: Thu, 17 Sep 2015 02:50:04 +0200 Subject: add support for adding libraries via builder pattern --- .../src/main/java/com/snilius/aboutit/AboutIt.java | 15 +++++-- aboutit/src/main/java/com/snilius/aboutit/L.java | 6 +-- .../main/java/com/snilius/aboutit/LibBuilder.java | 49 ++++++++++++++++++++++ .../main/java/com/snilius/aboutit/LicenseBase.java | 15 +++++++ 4 files changed, 79 insertions(+), 6 deletions(-) create mode 100644 aboutit/src/main/java/com/snilius/aboutit/LibBuilder.java create mode 100644 aboutit/src/main/java/com/snilius/aboutit/LicenseBase.java diff --git a/aboutit/src/main/java/com/snilius/aboutit/AboutIt.java b/aboutit/src/main/java/com/snilius/aboutit/AboutIt.java index a87cc05..c093b03 100644 --- a/aboutit/src/main/java/com/snilius/aboutit/AboutIt.java +++ b/aboutit/src/main/java/com/snilius/aboutit/AboutIt.java @@ -160,6 +160,15 @@ public class AboutIt { return this; } + /** + * Add a library to the list + * @param library A library build with LibBuilder + */ + public AboutIt libLicense(Lib library) { + libs.add(library); + return this; + } + /** * App name to display * @param stringResource A string resource id @@ -224,14 +233,14 @@ public class AboutIt { /** * Holder for libraries */ - private class Lib { + static class Lib { final String name; final String author; - final L license; + final LicenseBase license; final String url; - public Lib(String name, String author, L license, String url) { + public Lib(String name, String author, LicenseBase license, String url) { this.name = name; this.author = author; diff --git a/aboutit/src/main/java/com/snilius/aboutit/L.java b/aboutit/src/main/java/com/snilius/aboutit/L.java index a66726b..1151ba9 100644 --- a/aboutit/src/main/java/com/snilius/aboutit/L.java +++ b/aboutit/src/main/java/com/snilius/aboutit/L.java @@ -5,8 +5,8 @@ package com.snilius.aboutit; * @author Victor Häggqvist * @since 12/29/14 */ -public enum L { AP2("Apache License, Version 2.0"), MIT("MIT"), GPL2("GPLv2"), GPL3("GPLv3"); +public enum L implements LicenseBase { private String mDisplayname; @@ -15,10 +15,10 @@ public enum L { } /** - * Get diaplayname for license - * @return displaname + * {@inheritDoc} */ public String display() { return mDisplayname; } + } diff --git a/aboutit/src/main/java/com/snilius/aboutit/LibBuilder.java b/aboutit/src/main/java/com/snilius/aboutit/LibBuilder.java new file mode 100644 index 0000000..df5c653 --- /dev/null +++ b/aboutit/src/main/java/com/snilius/aboutit/LibBuilder.java @@ -0,0 +1,49 @@ +package com.snilius.aboutit; + +/** + * Library builder + * @author Victor Häggqvist + * @since 9/17/15 + */ +public class LibBuilder { + + private String name; + private String author; + private LicenseBase license; + private String url; + + public LibBuilder() { + name = ""; + author = ""; + license= null; + url = ""; + } + + public LibBuilder name(String name) { + + this.name = name; + return this; + } + + public LibBuilder author(String author) { + + this.author = author; + return this; + } + + public LibBuilder license(LicenseBase license) { + + this.license = license; + return this; + } + + public LibBuilder url(String url) { + this.url = url; + return this; + } + + public AboutIt.Lib build() { + return new AboutIt.Lib(name, author, license,url); + } + +} diff --git a/aboutit/src/main/java/com/snilius/aboutit/LicenseBase.java b/aboutit/src/main/java/com/snilius/aboutit/LicenseBase.java new file mode 100644 index 0000000..0398556 --- /dev/null +++ b/aboutit/src/main/java/com/snilius/aboutit/LicenseBase.java @@ -0,0 +1,15 @@ +package com.snilius.aboutit; + +/** + * License base + * @author Victor Häggqvist + * @since 9/17/15 + */ +public interface LicenseBase { + + /** + * Get display name for license + * @return display name + */ + String display(); +} -- cgit v1.2.3