1 /*******************************************************************************
2 * Copyright 2011 See AUTHORS file.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 ******************************************************************************/
16 package aurelienribon.gdxsetupui;
18 import aurelienribon.utils.ParseUtils;
19 import java.util.List;
22 * Skeleton for all the parameters related to a library definition.
23 * @author Aurelien Ribon | http://www.aurelienribon.com/
25 public class LibraryDef {
26 public final String name;
27 public final String author;
28 public final String authorWebsite;
29 public final String description;
30 public final String homepage;
31 public final String logo;
32 public final String gwtModuleName;
33 public final String stableVersion;
34 public final String stableUrl;
35 public final String latestUrl;
36 public final List<String> libsCommon;
37 public final List<String> libsDesktop;
38 public final List<String> libsAndroid;
39 public final List<String> libsHtml;
40 public final List<String> libsIos;
41 public final List<String> libsRobovm;
42 public final List<String> data;
45 * Creates a library definition by parsing the given text. If a parameter
46 * block is not found, it is replaced by a standard content.
48 public LibraryDef(String content) {
49 this.name = ParseUtils.parseBlock(content, "name", "<unknown>");
50 this.author = ParseUtils.parseBlock(content, "author", "<unknown>");
51 this.authorWebsite = ParseUtils.parseBlock(content, "author-website", null);
52 this.description = ParseUtils.parseBlock(content, "description", "").replaceAll("\\s+", " ");
53 this.homepage = ParseUtils.parseBlock(content, "homepage", null);
54 this.logo = ParseUtils.parseBlock(content, "logo", null);
55 this.gwtModuleName = ParseUtils.parseBlock(content, "gwt", null);
56 this.stableVersion = ParseUtils.parseBlock(content, "stable-version", "<unknown>");
57 this.stableUrl = ParseUtils.parseBlock(content, "stable-url", null);
58 this.latestUrl = ParseUtils.parseBlock(content, "latest-url", null);
59 this.libsCommon = ParseUtils.parseBlockAsList(content, "libs-common");
60 this.libsDesktop = ParseUtils.parseBlockAsList(content, "libs-desktop");
61 this.libsAndroid = ParseUtils.parseBlockAsList(content, "libs-android");
62 this.libsHtml = ParseUtils.parseBlockAsList(content, "libs-html");
63 this.libsIos = ParseUtils.parseBlockAsList(content, "libs-ios");
64 this.libsRobovm = ParseUtils.parseBlockAsList(content, "libs-robovm");
65 this.data = ParseUtils.parseBlockAsList(content, "data");