OSDN Git Service

52a6e580f1099f59953bb172706ec43b82b75d7e
[mikumikustudio/libgdx-mikumikustudio.git] / extensions / gdx-setup-ui / src / aurelienribon / gdxsetupui / LibraryDef.java
1 /*******************************************************************************
2  * Copyright 2011 See AUTHORS file.
3  * 
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
7  * 
8  *   http://www.apache.org/licenses/LICENSE-2.0
9  * 
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;
17
18 import aurelienribon.utils.ParseUtils;
19 import java.util.List;
20
21 /**
22  * Skeleton for all the parameters related to a library definition.
23  * @author Aurelien Ribon | http://www.aurelienribon.com/
24  */
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;
43
44         /**
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.
47          */
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");
66         }
67 }