/* * Copyright 2010-2011 Research In Motion Limited. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package net.rim.tumbler.file; import java.util.ArrayList; import net.rim.tumbler.config.WidgetFeature; /** * Stores information parsed from library.xml */ public class Library { private Extension _extension; private String _entryClass; private ArrayList<Platform> _platforms; private ArrayList<Configuration> _configurations; private ArrayList<WidgetFeature> _features; private ArrayList<Extension> _dependencies; private ArrayList<Jar> _compiledJARDependencies; /** * <extension> element in library.xml<br> * Can be under <library> or <dependencies> */ public static class Extension { private String _id; public Extension(String id) { _id = id; } public String getId() { return _id; } @Override public String toString() { StringBuilder buf = new StringBuilder("Extension{id: ").append(_id) .append("}"); return buf.toString(); } } /** * <jar> element in library.xml<br> */ public static class Jar { private String _path; public Jar(String path) { _path = path; } public String getPath() { return _path; } @Override public String toString() { StringBuilder buf = new StringBuilder("Jar{path: ").append(_path) .append("}"); return buf.toString(); } } /** * <platform> element in library.xml */ public static class Platform { private String _value; private ArrayList<Target> _targets; public Platform(String value) { _value = value; } public String getValue() { return _value; } public void addTarget(Target target) { if (_targets == null) { _targets = new ArrayList<Target>(); } _targets.add(target); } public ArrayList<Target> getTargets() { return _targets; } @Override public String toString() { StringBuilder buf = new StringBuilder("Platform{value: ").append( _value).append(", targets: ").append(_targets).append("}"); return buf.toString(); } } /** * <configuration> element in library.xml */ public static class Configuration { private String _name; private String _version; private ArrayList<Src> _src; public Configuration(String name, String version) { _name = name; _version = version; } public void addSrc(Src src) { if (_src == null) { _src = new ArrayList<Src>(); } _src.add(src); } public String getName() { return _name; } public String getVersion() { return _version; } public ArrayList<Src> getSrc() { return _src; } @Override public String toString() { StringBuilder buf = new StringBuilder("Configuration{name: ") .append(_name).append(", version: ").append(_version) .append(", src:").append(_src).append("}"); return buf.toString(); } } /** * <src> element in library.xml */ public static class Src { private String _type; private String _path; public Src(String type, String path) { _type = type; _path = path; } public String getType() { return _type; } public String getPath() { return _path; } @Override public String toString() { StringBuilder buf = new StringBuilder("Src{type: ").append(_type) .append(", path: ").append(_path).append("}"); return buf.toString(); } } /** * <target> element in library.xml */ public static class Target { private String _version; private String _configName; public Target(String version, String configName) { _version = version; _configName = configName; } public String getVersion() { return _version; } public String getConfigName() { return _configName; } @Override public String toString() { StringBuilder buf = new StringBuilder("Target{version: ").append( _version).append(", configName: ").append(_configName) .append("}"); return buf.toString(); } } /** * @param e * <extension> tag found under <library> */ public void setExtension(Extension e) { _extension = e; } /** * @return <extension> tag found under <library> */ public Extension getExtension() { return _extension; } /** * @param entryClass * entry class of the extension */ public void setEntryClass(String entryClass) { _entryClass = entryClass; } /** * @return entry class of the extension */ public String getEntryClass() { return _entryClass; } /** * @param e * <extension> found under <dependencies> */ public void addDependency(Extension e) { if (_dependencies == null) { _dependencies = new ArrayList<Extension>(); } _dependencies.add(e); } /** * @return <extension> tags found under <dependencies> */ public ArrayList<Extension> getDependencies() { return _dependencies; } /** * @param j * <jar> found under <dependencies> */ public void addJarDependency(Jar j) { if (_compiledJARDependencies == null) { _compiledJARDependencies = new ArrayList<Jar>(); } _compiledJARDependencies.add(j); } /** * @return <jar> tags found under <dependencies> */ public ArrayList<Jar> getCompiledJARDependencies() { return _compiledJARDependencies; } /** * @param p * <platform> tag */ public void addPlatform(Platform p) { if (_platforms == null) { _platforms = new ArrayList<Platform>(); } _platforms.add(p); } /** * @return <platform> tags */ public ArrayList<Platform> getPlatforms() { return _platforms; } /** * @param config * <configuration> tag */ public void addConfiguration(Configuration config) { if (_configurations == null) { _configurations = new ArrayList<Configuration>(); } _configurations.add(config); } /** * @return <configuration> tags */ public ArrayList<Configuration> getConfigurations() { return _configurations; } /** * @param feature * <feature> tag */ public void addFeature(WidgetFeature feature) { if (_features == null) { _features = new ArrayList<WidgetFeature>(); } _features.add(feature); } /** * @return <feature> tags */ public ArrayList<WidgetFeature> getFeatures() { return _features; } @Override public String toString() { StringBuilder buf = new StringBuilder("{extension: ") .append(_extension).append(", entryClass: ") .append(_entryClass).append(", dependencies: ").append( _dependencies).append(", platforms: ").append( _platforms).append(", configurations: ").append( _configurations).append(", features: ").append( _features).append("}"); return buf.toString(); } }