summaryrefslogtreecommitdiff
path: root/src/net/sourceforge/plantuml/version
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/sourceforge/plantuml/version')
-rw-r--r--src/net/sourceforge/plantuml/version/IteratorCounter.java43
-rw-r--r--src/net/sourceforge/plantuml/version/IteratorCounterImpl.java66
-rw-r--r--src/net/sourceforge/plantuml/version/License.java331
-rw-r--r--src/net/sourceforge/plantuml/version/PSystemLicense.java86
-rw-r--r--src/net/sourceforge/plantuml/version/PSystemLicenseFactory.java57
-rw-r--r--src/net/sourceforge/plantuml/version/PSystemVersion.java277
-rw-r--r--src/net/sourceforge/plantuml/version/PSystemVersionFactory.java83
-rw-r--r--src/net/sourceforge/plantuml/version/Version.java76
-rw-r--r--src/net/sourceforge/plantuml/version/charlie.pngbin0 -> 12170 bytes
-rw-r--r--src/net/sourceforge/plantuml/version/favicon.pngbin0 -> 670 bytes
-rw-r--r--src/net/sourceforge/plantuml/version/logo.pngbin0 -> 4121 bytes
11 files changed, 1019 insertions, 0 deletions
diff --git a/src/net/sourceforge/plantuml/version/IteratorCounter.java b/src/net/sourceforge/plantuml/version/IteratorCounter.java
new file mode 100644
index 0000000..7ec069f
--- /dev/null
+++ b/src/net/sourceforge/plantuml/version/IteratorCounter.java
@@ -0,0 +1,43 @@
+/* ========================================================================
+ * PlantUML : a free UML diagram generator
+ * ========================================================================
+ *
+ * (C) Copyright 2009-2014, Arnaud Roques
+ *
+ * Project Info: http://plantuml.sourceforge.net
+ *
+ * This file is part of PlantUML.
+ *
+ * Licensed under The MIT License (Massachusetts Institute of Technology License)
+ *
+ * See http://opensource.org/licenses/MIT
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
+ * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ *
+ * Original Author: Arnaud Roques
+ */
+package net.sourceforge.plantuml.version;
+
+import java.util.Iterator;
+
+public interface IteratorCounter extends Iterator<String> {
+
+ public int currentNum();
+
+}
diff --git a/src/net/sourceforge/plantuml/version/IteratorCounterImpl.java b/src/net/sourceforge/plantuml/version/IteratorCounterImpl.java
new file mode 100644
index 0000000..876e35e
--- /dev/null
+++ b/src/net/sourceforge/plantuml/version/IteratorCounterImpl.java
@@ -0,0 +1,66 @@
+/* ========================================================================
+ * PlantUML : a free UML diagram generator
+ * ========================================================================
+ *
+ * (C) Copyright 2009-2014, Arnaud Roques
+ *
+ * Project Info: http://plantuml.sourceforge.net
+ *
+ * This file is part of PlantUML.
+ *
+ * Licensed under The MIT License (Massachusetts Institute of Technology License)
+ *
+ * See http://opensource.org/licenses/MIT
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
+ * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ *
+ * Original Author: Arnaud Roques
+ */
+package net.sourceforge.plantuml.version;
+
+import java.util.Iterator;
+
+public class IteratorCounterImpl implements IteratorCounter {
+
+ private final Iterator<String> it;
+ private int nb;
+
+ public IteratorCounterImpl(Iterator<String> it) {
+ this.it = it;
+ this.nb = 0;
+ }
+
+ public int currentNum() {
+ return nb;
+ }
+
+ public boolean hasNext() {
+ return it.hasNext();
+ }
+
+ public String next() {
+ nb++;
+ return it.next();
+ }
+
+ public void remove() {
+ throw new UnsupportedOperationException();
+ }
+
+}
diff --git a/src/net/sourceforge/plantuml/version/License.java b/src/net/sourceforge/plantuml/version/License.java
new file mode 100644
index 0000000..254c368
--- /dev/null
+++ b/src/net/sourceforge/plantuml/version/License.java
@@ -0,0 +1,331 @@
+/* ========================================================================
+ * PlantUML : a free UML diagram generator
+ * ========================================================================
+ *
+ * (C) Copyright 2009-2014, Arnaud Roques
+ *
+ * Project Info: http://plantuml.sourceforge.net
+ *
+ * This file is part of PlantUML.
+ *
+ * Licensed under The MIT License (Massachusetts Institute of Technology License)
+ *
+ * See http://opensource.org/licenses/MIT
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
+ * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ *
+ * Original Author: Arnaud Roques
+ */
+package net.sourceforge.plantuml.version;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+public enum License {
+
+ GPL, LGPL, APACHE, EPL, MIT;
+
+ public static License getCurrent() {
+ return MIT;
+ }
+
+ private void addMit(final List<String> text) {
+ text.add("PlantUML is free software; you can redistribute it and/or modify it");
+ text.add("under the terms of the MIT License.");
+ text.add("");
+ text.add("See http://opensource.org/licenses/MIT");
+ text.add("");
+ text.add("Permission is hereby granted, free of charge, to any person obtaining");
+ text.add("a copy of this software and associated documentation files (the \"Software\"),");
+ text.add("to deal in the Software without restriction, including without limitation");
+ text.add("the rights to use, copy, modify, merge, publish, distribute, sublicense,");
+ text.add("and/or sell copies of the Software, and to permit persons to whom the");
+ text.add("Software is furnished to do so, subject to the following conditions:");
+ text.add("");
+ text.add("The above copyright notice and this permission notice shall be included");
+ text.add("in all copies or substantial portions of the Software.");
+ text.add("");
+ text.add("THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS");
+ text.add("OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,");
+ text.add("FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE");
+ text.add("AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,");
+ text.add("WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR");
+ text.add("IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.");
+ text.add("");
+ text.add("Note that images (whatever their format : PNG, SVG...) generated by running PlantUML");
+ text.add("are owned by the author of their corresponding sources code (that is, their");
+ text.add("textual description in PlantUML language). Those images are not covered by");
+ text.add("the MIT License.");
+ text.add("");
+ text.add("The generated images can then be used without any reference to the MIT License.");
+ text.add("It is not even necessary to stipulate that they have been generated with PlantUML,");
+ text.add("also this will be appreciate by PlantUML team.");
+ text.add("");
+ text.add("There is an exception : if the textual description in PlantUML language is also covered");
+ text.add("by a license (like the MIT), then the generated images are logically covered");
+ text.add("by the very same license.");
+ }
+
+ private void addEpl(final List<String> text) {
+ text.add("PlantUML is free software; you can redistribute it and/or modify it");
+ text.add("under the terms of the Eclipse Public License.");
+ text.add("");
+ text.add("THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC");
+ text.add("LICENSE (\"AGREEMENT\"). [Eclipse Public License - v 1.0]");
+ text.add("");
+ text.add("ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES");
+ text.add("RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.");
+ text.add("");
+ text.add("You may obtain a copy of the License at");
+ text.add("");
+ text.add("http://www.eclipse.org/legal/epl-v10.html");
+ text.add("");
+ text.add("Unless required by applicable law or agreed to in writing, software");
+ text.add("distributed under the License is distributed on an \"AS IS\" BASIS,");
+ text.add("WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.");
+ text.add("See the License for the specific language governing permissions and");
+ text.add("limitations under the License.");
+ text.add("");
+ text.add("Note that images (whatever their format : PNG, SVG...) generated by running PlantUML");
+ text.add("are owned by the author of their corresponding sources code (that is, their");
+ text.add("textual description in PlantUML language). Those images are not covered by");
+ text.add("the Eclipse Public License.");
+ text.add("");
+ text.add("The generated images can then be used without any reference to the Eclipse Public License.");
+ text.add("It is not even necessary to stipulate that they have been generated with PlantUML,");
+ text.add("also this will be appreciate by PlantUML team.");
+ text.add("");
+ text.add("There is an exception : if the textual description in PlantUML language is also covered");
+ text.add("by a license (like the EPL), then the generated images are logically covered");
+ text.add("by the very same license.");
+ }
+
+ private void addApache(final List<String> text) {
+ text.add("PlantUML is free software; you can redistribute it and/or modify it");
+ text.add("under the terms of the Apache Software License.");
+ text.add("");
+ text.add("Licensed under the Apache License, Version 2.0 (the \"License\");");
+ text.add("you may not use this file except in compliance with the License.");
+ text.add("You may obtain a copy of the License at");
+ text.add("");
+ text.add("http://www.apache.org/licenses/LICENSE-2.0");
+ text.add("");
+ text.add("Unless required by applicable law or agreed to in writing, software");
+ text.add("distributed under the License is distributed on an \"AS IS\" BASIS,");
+ text.add("WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.");
+ text.add("See the License for the specific language governing permissions and");
+ text.add("limitations under the License.");
+ text.add("");
+ text.add("Note that images (whatever their format : PNG, SVG...) generated by running PlantUML");
+ text.add("are owned by the author of their corresponding sources code (that is, their");
+ text.add("textual description in PlantUML language). Those images are not covered by");
+ text.add("the Apache license.");
+ text.add("");
+ text.add("The generated images can then be used without any reference to the Apache license.");
+ text.add("It is not even necessary to stipulate that they have been generated with PlantUML,");
+ text.add("also this will be appreciate by PlantUML team.");
+ text.add("");
+ text.add("There is an exception : if the textual description in PlantUML language is also covered");
+ text.add("by a license (like the Apache), then the generated images are logically covered");
+ text.add("by the very same license.");
+ }
+
+ private void addGpl(final List<String> text) {
+ text.add("PlantUML is free software; you can redistribute it and/or modify it");
+ text.add("under the terms of the GNU General Public License as published by");
+ text.add("the Free Software Foundation, either version 3 of the License, or");
+ text.add("(at your option) any later version.");
+ text.add("");
+ text.add("PlantUML distributed in the hope that it will be useful, but");
+ text.add("WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY");
+ text.add("or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public");
+ text.add("License for more details.");
+ text.add("");
+ text.add("You should have received a copy of the GNU General Public");
+ text.add("License along with this library; if not, write to the Free Software");
+ text.add("Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,");
+ text.add("USA.");
+ text.add("");
+ text.add("Note that images (whatever their format : PNG, SVG...) generated by running PlantUML");
+ text.add("are owned by the author of their corresponding sources code (that is, their");
+ text.add("textual description in PlantUML language). Those images are not covered by");
+ text.add("the GPL license.");
+ text.add("");
+ text.add("The generated images can then be used without any reference to the GPL license.");
+ text.add("It is not even necessary to stipulate that they have been generated with PlantUML,");
+ text.add("also this will be appreciate by PlantUML team.");
+ text.add("");
+ text.add("There is an exception : if the textual description in PlantUML language is also covered");
+ text.add("by a license (like the GPL), then the generated images are logically covered");
+ text.add("by the very same license.");
+ }
+
+ private void addLgpl(final List<String> text) {
+ text.add("PlantUML is free software; you can redistribute it and/or modify it");
+ text.add("under the terms of the GNU Lesser General Public License as published by");
+ text.add("the Free Software Foundation, either version 3 of the License, or");
+ text.add("(at your option) any later version.");
+ text.add("");
+ text.add("PlantUML distributed in the hope that it will be useful, but");
+ text.add("WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY");
+ text.add("or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public");
+ text.add("License for more details.");
+ text.add("");
+ text.add("You should have received a copy of the GNU Lesser General Public");
+ text.add("License along with this library; if not, write to the Free Software");
+ text.add("Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,");
+ text.add("USA.");
+ text.add("");
+ text.add("Note that images (whatever their format : PNG, SVG...) generated by running PlantUML");
+ text.add("are owned by the author of their corresponding sources code (that is, their");
+ text.add("textual description in PlantUML language). Those images are not covered by");
+ text.add("the LGPL license.");
+ text.add("");
+ text.add("The generated images can then be used without any reference to the LGPL license.");
+ text.add("It is not even necessary to stipulate that they have been generated with PlantUML,");
+ text.add("although this will be appreciate by PlantUML team.");
+ text.add("");
+ text.add("There is an exception : if the textual description in PlantUML language is also covered");
+ text.add("by a license (like the LGPL), then the generated images are logically covered");
+ text.add("by the very same license.");
+ }
+
+ private List<String> getHeaderStart() {
+ final List<String> text = new ArrayList<String>();
+ text.add("========================================================================");
+ text.add("PlantUML : a free UML diagram generator");
+ text.add("========================================================================");
+ text.add("");
+ text.add("(C) Copyright 2009-2014, Arnaud Roques");
+ text.add("");
+ text.add("Project Info: http://plantuml.sourceforge.net");
+ text.add("");
+ return text;
+ }
+
+ public List<String> getJavaHeader() {
+ final List<String> h = new ArrayList<String>();
+ h.add("/* ========================================================================");
+ h.add(" * PlantUML : a free UML diagram generator");
+ h.add(" * ========================================================================");
+ h.add(" *");
+ h.add(" * (C) Copyright 2009-2014, Arnaud Roques");
+ h.add(" *");
+ h.add(" * Project Info: http://plantuml.sourceforge.net");
+ h.add(" * ");
+ h.add(" * This file is part of PlantUML.");
+ h.add(" *");
+ if (this == License.LGPL) {
+ h.add(" * PlantUML is free software; you can redistribute it and/or modify it");
+ h.add(" * under the terms of the GNU Lesser General Public License as published by");
+ h.add(" * the Free Software Foundation, either version 3 of the License, or");
+ h.add(" * (at your option) any later version.");
+ h.add(" *");
+ h.add(" * PlantUML distributed in the hope that it will be useful, but");
+ h.add(" * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY");
+ h.add(" * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public");
+ h.add(" * License for more details.");
+ h.add(" *");
+ h.add(" * You should have received a copy of the GNU Lesser General Public");
+ h.add(" * License along with this library; if not, write to the Free Software");
+ h.add(" * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,");
+ h.add(" * USA.");
+ h.add(" *");
+ } else if (this == License.APACHE) {
+ h.add(" * Licensed under the Apache License, Version 2.0 (the \"License\");");
+ h.add(" * you may not use this file except in compliance with the License.");
+ h.add(" * You may obtain a copy of the License at");
+ h.add(" * ");
+ h.add(" * http://www.apache.org/licenses/LICENSE-2.0");
+ h.add(" * ");
+ h.add(" * Unless required by applicable law or agreed to in writing, software");
+ h.add(" * distributed under the License is distributed on an \"AS IS\" BASIS,");
+ h.add(" * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.");
+ h.add(" * See the License for the specific language governing permissions and");
+ h.add(" * limitations under the License.");
+ h.add(" *");
+ } else if (this == License.EPL) {
+ h.add(" * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC");
+ h.add(" * LICENSE (\"AGREEMENT\"). [Eclipse Public License - v 1.0]");
+ h.add(" * ");
+ h.add(" * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES");
+ h.add(" * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.");
+ h.add(" * ");
+ h.add(" * You may obtain a copy of the License at");
+ h.add(" * ");
+ h.add(" * http://www.eclipse.org/legal/epl-v10.html");
+ h.add(" * ");
+ h.add(" * Unless required by applicable law or agreed to in writing, software");
+ h.add(" * distributed under the License is distributed on an \"AS IS\" BASIS,");
+ h.add(" * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.");
+ h.add(" * See the License for the specific language governing permissions and");
+ h.add(" * limitations under the License.");
+ h.add(" * ");
+ } else if (this == License.MIT) {
+ h.add(" * Licensed under The MIT License (Massachusetts Institute of Technology License)");
+ h.add(" * ");
+ h.add(" * See http://opensource.org/licenses/MIT");
+ h.add(" * ");
+ h.add(" * Permission is hereby granted, free of charge, to any person obtaining");
+ h.add(" * a copy of this software and associated documentation files (the \"Software\"),");
+ h.add(" * to deal in the Software without restriction, including without limitation");
+ h.add(" * the rights to use, copy, modify, merge, publish, distribute, sublicense,");
+ h.add(" * and/or sell copies of the Software, and to permit persons to whom the");
+ h.add(" * Software is furnished to do so, subject to the following conditions:");
+ h.add(" * ");
+ h.add(" * The above copyright notice and this permission notice shall be included");
+ h.add(" * in all copies or substantial portions of the Software.");
+ h.add(" * ");
+ h.add(" * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS");
+ h.add(" * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,");
+ h.add(" * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE");
+ h.add(" * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,");
+ h.add(" * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR");
+ h.add(" * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.");
+ h.add(" * ");
+ }
+ h.add(" *");
+ h.add(" * Original Author: Arnaud Roques");
+ h.add(" */");
+ return Collections.unmodifiableList(h);
+ }
+
+ public List<String> getText() {
+ final List<String> text = getHeaderStart();
+ if (this == License.GPL) {
+ addGpl(text);
+ } else if (this == License.MIT) {
+ addMit(text);
+ } else if (this == License.EPL) {
+ addEpl(text);
+ } else if (this == License.APACHE) {
+ addApache(text);
+ } else if (this == License.LGPL) {
+ addLgpl(text);
+ } else {
+ throw new IllegalStateException();
+ }
+ text.add("");
+ text.add("Icon provided by OpenIconic : https://useiconic.com/open/");
+ text.add("");
+ return text;
+ }
+
+}
diff --git a/src/net/sourceforge/plantuml/version/PSystemLicense.java b/src/net/sourceforge/plantuml/version/PSystemLicense.java
new file mode 100644
index 0000000..d2563b8
--- /dev/null
+++ b/src/net/sourceforge/plantuml/version/PSystemLicense.java
@@ -0,0 +1,86 @@
+/* ========================================================================
+ * PlantUML : a free UML diagram generator
+ * ========================================================================
+ *
+ * (C) Copyright 2009-2014, Arnaud Roques
+ *
+ * Project Info: http://plantuml.sourceforge.net
+ *
+ * This file is part of PlantUML.
+ *
+ * Licensed under The MIT License (Massachusetts Institute of Technology License)
+ *
+ * See http://opensource.org/licenses/MIT
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
+ * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ *
+ * Original Author: Arnaud Roques
+ */
+package net.sourceforge.plantuml.version;
+
+import java.awt.Font;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import net.sourceforge.plantuml.AbstractPSystem;
+import net.sourceforge.plantuml.FileFormatOption;
+import net.sourceforge.plantuml.core.DiagramDescription;
+import net.sourceforge.plantuml.core.DiagramDescriptionImpl;
+import net.sourceforge.plantuml.core.ImageData;
+import net.sourceforge.plantuml.graphic.GraphicPosition;
+import net.sourceforge.plantuml.graphic.GraphicStrings;
+import net.sourceforge.plantuml.graphic.HtmlColorUtils;
+import net.sourceforge.plantuml.ugraphic.ColorMapperIdentity;
+import net.sourceforge.plantuml.ugraphic.ImageBuilder;
+import net.sourceforge.plantuml.ugraphic.UAntiAliasing;
+import net.sourceforge.plantuml.ugraphic.UFont;
+
+public class PSystemLicense extends AbstractPSystem {
+
+ private final List<String> strings = new ArrayList<String>();
+
+ PSystemLicense() throws IOException {
+ strings.addAll(License.getCurrent().getText());
+ }
+
+ public ImageData exportDiagram(OutputStream os, int num, FileFormatOption fileFormat) throws IOException {
+ final GraphicStrings result = getGraphicStrings();
+ final ImageBuilder imageBuilder = new ImageBuilder(new ColorMapperIdentity(), 1.0, result.getBackcolor(),
+ getMetadata(), null, 0, 0, null, false);
+ imageBuilder.addUDrawable(result);
+ return imageBuilder.writeImageTOBEMOVED(fileFormat.getFileFormat(), os);
+ }
+
+ public static PSystemLicense create() throws IOException {
+ return new PSystemLicense();
+ }
+
+ private GraphicStrings getGraphicStrings() throws IOException {
+ final UFont font = new UFont("SansSerif", Font.PLAIN, 12);
+ return new GraphicStrings(strings, font, HtmlColorUtils.BLACK, HtmlColorUtils.WHITE, UAntiAliasing.ANTI_ALIASING_ON,
+ null, GraphicPosition.BACKGROUND_CORNER_BOTTOM_RIGHT);
+ }
+
+ public DiagramDescription getDescription() {
+ return new DiagramDescriptionImpl("(License)", getClass());
+ }
+
+}
diff --git a/src/net/sourceforge/plantuml/version/PSystemLicenseFactory.java b/src/net/sourceforge/plantuml/version/PSystemLicenseFactory.java
new file mode 100644
index 0000000..affcc05
--- /dev/null
+++ b/src/net/sourceforge/plantuml/version/PSystemLicenseFactory.java
@@ -0,0 +1,57 @@
+/* ========================================================================
+ * PlantUML : a free UML diagram generator
+ * ========================================================================
+ *
+ * (C) Copyright 2009-2014, Arnaud Roques
+ *
+ * Project Info: http://plantuml.sourceforge.net
+ *
+ * This file is part of PlantUML.
+ *
+ * Licensed under The MIT License (Massachusetts Institute of Technology License)
+ *
+ * See http://opensource.org/licenses/MIT
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
+ * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ *
+ * Original Author: Arnaud Roques
+ */
+package net.sourceforge.plantuml.version;
+
+import java.io.IOException;
+
+import net.sourceforge.plantuml.AbstractPSystem;
+import net.sourceforge.plantuml.Log;
+import net.sourceforge.plantuml.command.PSystemSingleLineFactory;
+
+public class PSystemLicenseFactory extends PSystemSingleLineFactory {
+
+ @Override
+ protected AbstractPSystem executeLine(String line) {
+ try {
+ if (line.matches("(?i)^li[sc][ea]n[sc]e\\s*$")) {
+ return PSystemLicense.create();
+ }
+ } catch (IOException e) {
+ Log.error("Error " + e);
+ }
+ return null;
+ }
+
+}
diff --git a/src/net/sourceforge/plantuml/version/PSystemVersion.java b/src/net/sourceforge/plantuml/version/PSystemVersion.java
new file mode 100644
index 0000000..d319cab
--- /dev/null
+++ b/src/net/sourceforge/plantuml/version/PSystemVersion.java
@@ -0,0 +1,277 @@
+/* ========================================================================
+ * PlantUML : a free UML diagram generator
+ * ========================================================================
+ *
+ * (C) Copyright 2009-2014, Arnaud Roques
+ *
+ * Project Info: http://plantuml.sourceforge.net
+ *
+ * This file is part of PlantUML.
+ *
+ * Licensed under The MIT License (Massachusetts Institute of Technology License)
+ *
+ * See http://opensource.org/licenses/MIT
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
+ * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ *
+ * Original Author: Arnaud Roques
+ */
+package net.sourceforge.plantuml.version;
+
+import java.awt.Font;
+import java.awt.image.BufferedImage;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Properties;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import javax.imageio.ImageIO;
+
+import net.sourceforge.plantuml.AbstractPSystem;
+import net.sourceforge.plantuml.FileFormatOption;
+import net.sourceforge.plantuml.Log;
+import net.sourceforge.plantuml.core.DiagramDescription;
+import net.sourceforge.plantuml.core.DiagramDescriptionImpl;
+import net.sourceforge.plantuml.core.ImageData;
+import net.sourceforge.plantuml.cucadiagram.dot.GraphvizUtils;
+import net.sourceforge.plantuml.graphic.GraphicPosition;
+import net.sourceforge.plantuml.graphic.GraphicStrings;
+import net.sourceforge.plantuml.graphic.HtmlColorUtils;
+import net.sourceforge.plantuml.ugraphic.ColorMapperIdentity;
+import net.sourceforge.plantuml.ugraphic.ImageBuilder;
+import net.sourceforge.plantuml.ugraphic.UAntiAliasing;
+import net.sourceforge.plantuml.ugraphic.UFont;
+
+public class PSystemVersion extends AbstractPSystem {
+
+ private final List<String> strings = new ArrayList<String>();
+ private BufferedImage image;
+
+ PSystemVersion(boolean withImage, List<String> args) {
+ strings.addAll(args);
+ if (withImage) {
+ image = getPlantumlImage();
+ }
+ }
+
+ public static BufferedImage getPlantumlImage() {
+ try {
+ final InputStream is = PSystemVersion.class.getResourceAsStream("logo.png");
+ final BufferedImage image = ImageIO.read(is);
+ is.close();
+ return image;
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ public static BufferedImage getCharlieImage() {
+ try {
+ final InputStream is = PSystemVersion.class.getResourceAsStream("charlie.png");
+ final BufferedImage image = ImageIO.read(is);
+ is.close();
+ return image;
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ public static BufferedImage getPlantumlSmallIcon() {
+ try {
+ final InputStream is = PSystemVersion.class.getResourceAsStream("favicon.png");
+ final BufferedImage image = ImageIO.read(is);
+ is.close();
+ return image;
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ private static BufferedImage transparentIcon;
+
+ public static BufferedImage getPlantumlSmallIcon2() {
+ if (transparentIcon != null) {
+ return transparentIcon;
+ }
+ final BufferedImage ico = getPlantumlSmallIcon();
+ if (ico == null) {
+ return null;
+ }
+ transparentIcon = new BufferedImage(ico.getWidth(), ico.getHeight(), BufferedImage.TYPE_INT_ARGB_PRE);
+ for (int i = 0; i < ico.getWidth(); i++) {
+ for (int j = 0; j < ico.getHeight(); j++) {
+ final int col = ico.getRGB(i, j);
+ if (col != ico.getRGB(0, 0)) {
+ transparentIcon.setRGB(i, j, col);
+ }
+ }
+ }
+ return transparentIcon;
+ }
+
+ public ImageData exportDiagram(OutputStream os, int num, FileFormatOption fileFormat) throws IOException {
+ final GraphicStrings result = getGraphicStrings();
+ final ImageBuilder imageBuilder = new ImageBuilder(new ColorMapperIdentity(), 1.0, result.getBackcolor(),
+ getMetadata(), null, 0, 0, null, false);
+ imageBuilder.addUDrawable(result);
+ return imageBuilder.writeImageTOBEMOVED(fileFormat.getFileFormat(), os);
+ }
+
+ public static PSystemVersion createShowVersion() {
+ final List<String> strings = new ArrayList<String>();
+ strings.add("<b>PlantUML version " + Version.versionString() + "</b> (" + Version.compileTimeString() + ")");
+ strings.add("(" + License.getCurrent() + " source distribution)");
+ strings.add(" ");
+
+ strings.addAll(GraphvizUtils.getTestDotStrings(true));
+ strings.add(" ");
+ final Properties p = System.getProperties();
+ strings.add(p.getProperty("java.runtime.name"));
+ strings.add(p.getProperty("java.vm.name"));
+ strings.add(p.getProperty("java.runtime.version"));
+ strings.add(p.getProperty("os.name"));
+ strings.add("Processors: " + Runtime.getRuntime().availableProcessors());
+ return new PSystemVersion(true, strings);
+ }
+
+ public static PSystemVersion createShowAuthors() {
+ // Duplicate in OptionPrint
+ final List<String> strings = new ArrayList<String>();
+ strings.add("<b>PlantUML version " + Version.versionString() + "</b> (" + Version.compileTimeString() + ")");
+ strings.add("(" + License.getCurrent() + " source distribution)");
+ strings.add(" ");
+ strings.add("<u>Original idea</u>: Arnaud Roques");
+ strings.add("<u>Word Macro</u>: Alain Bertucat & Matthieu Sabatier");
+ strings.add("<u>Word Add-in</u>: Adriaan van den Brand");
+ strings.add("<u>Eclipse Plugin</u>: Claude Durif & Anne Pecoil");
+ strings.add("<u>Servlet & XWiki</u>: Maxime Sinclair");
+ strings.add("<u>Site design</u>: Raphael Cotisson");
+ strings.add("<u>Logo</u>: Benjamin Croizet");
+
+ strings.add(" ");
+ strings.add("http://plantuml.sourceforge.net");
+ strings.add(" ");
+ return new PSystemVersion(true, strings);
+ }
+
+ public static PSystemVersion createCheckVersions(String host, String port) {
+ final List<String> strings = new ArrayList<String>();
+ strings.add("<b>PlantUML version " + Version.versionString() + "</b> (" + Version.compileTimeString() + ")");
+
+ final int lastversion = extractDownloadableVersion(host, port);
+
+ int lim = 7;
+ if (lastversion == -1) {
+ strings.add("<b><color:red>Error</b>");
+ strings.add("<color:red>Cannot connect to http://plantuml.sourceforge.net/</b>");
+ strings.add("Maybe you should set your proxy ?");
+ strings.add("@startuml");
+ strings.add("checkversion(proxy=myproxy.com,port=8080)");
+ strings.add("@enduml");
+ lim = 9;
+ } else if (lastversion == 0) {
+ strings.add("<b><color:red>Error</b>");
+ strings.add("Cannot retrieve last version from http://plantuml.sourceforge.net/</b>");
+ } else {
+ strings.add("<b>Last available version for download</b> : " + lastversion);
+ strings.add(" ");
+ if (Version.version() >= lastversion) {
+ strings.add("<b><color:green>Your version is up to date.</b>");
+ } else {
+ strings.add("<b><color:red>A newer version is available for download.</b>");
+ }
+ }
+
+ while (strings.size() < lim) {
+ strings.add(" ");
+ }
+
+ return new PSystemVersion(true, strings);
+ }
+
+ public static int extractDownloadableVersion(String host, String port) {
+ if (host != null && port != null) {
+ System.setProperty("http.proxyHost", host);
+ System.setProperty("http.proxyPort", port);
+ }
+
+ try {
+ final URL url = new URL("http://plantuml.sourceforge.net/download.html");
+ final HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
+ urlConnection.setUseCaches(false);
+ urlConnection.connect();
+ if (urlConnection.getResponseCode() == HttpURLConnection.HTTP_OK) {
+ final BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
+ final int lastversion = extractVersion(in);
+ in.close();
+ urlConnection.disconnect();
+ return lastversion;
+ }
+ } catch (IOException e) {
+ Log.error(e.toString());
+ }
+ return -1;
+ }
+
+ private static int extractVersion(BufferedReader in) throws IOException {
+ String s;
+ final Pattern p = Pattern.compile(".*\\.(\\d{4,5})\\..*");
+ while ((s = in.readLine()) != null) {
+ final Matcher m = p.matcher(s);
+ if (m.matches()) {
+ final String v = m.group(1);
+ return Integer.parseInt(v);
+ }
+ }
+ return 0;
+ }
+
+ public static PSystemVersion createTestDot() throws IOException {
+ final List<String> strings = new ArrayList<String>();
+ strings.addAll(GraphvizUtils.getTestDotStrings(true));
+ return new PSystemVersion(false, strings);
+ }
+
+ private GraphicStrings getGraphicStrings() throws IOException {
+ final UFont font = new UFont("SansSerif", Font.PLAIN, 12);
+ return new GraphicStrings(strings, font, HtmlColorUtils.BLACK, HtmlColorUtils.WHITE, UAntiAliasing.ANTI_ALIASING_ON,
+ image, GraphicPosition.BACKGROUND_CORNER_BOTTOM_RIGHT);
+ }
+
+ public DiagramDescription getDescription() {
+ return new DiagramDescriptionImpl("(Version)", getClass());
+ }
+
+ public List<String> getLines() {
+ return Collections.unmodifiableList(strings);
+ }
+
+}
diff --git a/src/net/sourceforge/plantuml/version/PSystemVersionFactory.java b/src/net/sourceforge/plantuml/version/PSystemVersionFactory.java
new file mode 100644
index 0000000..841b19d
--- /dev/null
+++ b/src/net/sourceforge/plantuml/version/PSystemVersionFactory.java
@@ -0,0 +1,83 @@
+/* ========================================================================
+ * PlantUML : a free UML diagram generator
+ * ========================================================================
+ *
+ * (C) Copyright 2009-2014, Arnaud Roques
+ *
+ * Project Info: http://plantuml.sourceforge.net
+ *
+ * This file is part of PlantUML.
+ *
+ * Licensed under The MIT License (Massachusetts Institute of Technology License)
+ *
+ * See http://opensource.org/licenses/MIT
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
+ * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ *
+ * Original Author: Arnaud Roques
+ */
+package net.sourceforge.plantuml.version;
+
+import java.io.IOException;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import net.sourceforge.plantuml.AbstractPSystem;
+import net.sourceforge.plantuml.Log;
+import net.sourceforge.plantuml.command.PSystemSingleLineFactory;
+
+public class PSystemVersionFactory extends PSystemSingleLineFactory {
+
+ @Override
+ protected AbstractPSystem executeLine(String line) {
+ try {
+ if (line.matches("(?i)^(authors?|about)\\s*$")) {
+ return PSystemVersion.createShowAuthors();
+ }
+ if (line.matches("(?i)^version\\s*$")) {
+ return PSystemVersion.createShowVersion();
+ }
+ if (line.matches("(?i)^testdot\\s*$")) {
+ return PSystemVersion.createTestDot();
+ }
+ if (line.matches("(?i)^checkversion\\s*$")) {
+ return PSystemVersion.createCheckVersions(null, null);
+ }
+ final Pattern p1 = Pattern.compile("(?i)^checkversion\\(proxy=([\\w.]+),port=(\\d+)\\)$");
+ final Matcher m1 = p1.matcher(line);
+ if (m1.matches()) {
+ final String host = m1.group(1);
+ final String port = m1.group(2);
+ return PSystemVersion.createCheckVersions(host, port);
+ }
+ final Pattern p2 = Pattern.compile("(?i)^checkversion\\(proxy=([\\w.]+)\\)$");
+ final Matcher m2 = p2.matcher(line);
+ if (m2.matches()) {
+ final String host = m2.group(1);
+ final String port = "80";
+ return PSystemVersion.createCheckVersions(host, port);
+ }
+ } catch (IOException e) {
+ Log.error("Error " + e);
+
+ }
+ return null;
+ }
+
+}
diff --git a/src/net/sourceforge/plantuml/version/Version.java b/src/net/sourceforge/plantuml/version/Version.java
new file mode 100644
index 0000000..eb0bc15
--- /dev/null
+++ b/src/net/sourceforge/plantuml/version/Version.java
@@ -0,0 +1,76 @@
+/* ========================================================================
+ * PlantUML : a free UML diagram generator
+ * ========================================================================
+ *
+ * (C) Copyright 2009-2014, Arnaud Roques
+ *
+ * Project Info: http://plantuml.sourceforge.net
+ *
+ * This file is part of PlantUML.
+ *
+ * Licensed under The MIT License (Massachusetts Institute of Technology License)
+ *
+ * See http://opensource.org/licenses/MIT
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
+ * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ *
+ * Original Author: Arnaud Roques
+ */
+package net.sourceforge.plantuml.version;
+
+import java.util.Date;
+
+public class Version {
+
+ public static int version() {
+ return 8024;
+ }
+
+ public static String versionString() {
+ if (beta() != 0) {
+ return "" + (version() + 1) + "beta" + beta();
+ }
+ return "" + version();
+ }
+
+ public static String versionString(int size) {
+ final StringBuilder sb = new StringBuilder(versionString());
+ while (sb.length() < size) {
+ sb.append(' ');
+ }
+ return sb.toString();
+ }
+
+ private static int beta() {
+ final int beta = 0;
+ return beta;
+ }
+
+ private static long compileTime() {
+ return 1430665511202L;
+ }
+
+ public static String compileTimeString() {
+ if (beta() != 0) {
+ return versionString();
+ }
+ return new Date(Version.compileTime()).toString();
+ }
+
+}
diff --git a/src/net/sourceforge/plantuml/version/charlie.png b/src/net/sourceforge/plantuml/version/charlie.png
new file mode 100644
index 0000000..1d4281d
--- /dev/null
+++ b/src/net/sourceforge/plantuml/version/charlie.png
Binary files differ
diff --git a/src/net/sourceforge/plantuml/version/favicon.png b/src/net/sourceforge/plantuml/version/favicon.png
new file mode 100644
index 0000000..f01b74a
--- /dev/null
+++ b/src/net/sourceforge/plantuml/version/favicon.png
Binary files differ
diff --git a/src/net/sourceforge/plantuml/version/logo.png b/src/net/sourceforge/plantuml/version/logo.png
new file mode 100644
index 0000000..986cf4e
--- /dev/null
+++ b/src/net/sourceforge/plantuml/version/logo.png
Binary files differ