diff options
Diffstat (limited to 'src/plugins/common/src/com/motorola/studio/android/model/manifest/dom/ApplicationNode.java')
-rw-r--r-- | src/plugins/common/src/com/motorola/studio/android/model/manifest/dom/ApplicationNode.java | 735 |
1 files changed, 735 insertions, 0 deletions
diff --git a/src/plugins/common/src/com/motorola/studio/android/model/manifest/dom/ApplicationNode.java b/src/plugins/common/src/com/motorola/studio/android/model/manifest/dom/ApplicationNode.java new file mode 100644 index 0000000..d4cac34 --- /dev/null +++ b/src/plugins/common/src/com/motorola/studio/android/model/manifest/dom/ApplicationNode.java @@ -0,0 +1,735 @@ +/* +* Copyright (C) 2012 The Android Open Source Project +* +* 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 com.motorola.studio.android.model.manifest.dom; + +import java.util.LinkedList; +import java.util.List; + +import org.eclipse.core.runtime.IStatus; + +/** + * Class that represents an <application> node on AndroidManifest.xml file + */ +public class ApplicationNode extends AbstractIconLabelNameNode +{ + static + { + defaultProperties.add(PROP_ALLOWCLEARUSERDATA); + defaultProperties.add(PROP_ALLOWTASKREPARENTING); + defaultProperties.add(PROP_DEBUGGABLE); + defaultProperties.add(PROP_DESCRIPTION); + defaultProperties.add(PROP_ENABLED); + defaultProperties.add(PROP_HASCODE); + defaultProperties.add(PROP_MANAGESPACEACTIVITY); + defaultProperties.add(PROP_PERMISSION); + defaultProperties.add(PROP_PERSISTENT); + defaultProperties.add(PROP_PROCESS); + defaultProperties.add(PROP_TASKAFFINITY); + defaultProperties.add(PROP_THEME); + } + + /** + * The allowClearUserData property + */ + private Boolean propAllowClearUserData = null; + + /** + * The allowTaskReparenting property + */ + private Boolean propAllowTaskReparenting = null; + + /** + * The debuggable property + */ + private Boolean propDebuggable = null; + + /** + * The description property + */ + private String propDescription = null; + + /** + * The enabled property + */ + private Boolean propEnabled = null; + + /** + * The hasCode property + */ + private Boolean propHasCode = null; + + /** + * The manageSpaceActivity property + */ + private String propManageSpaceActivity = null; + + /** + * The permission property + */ + private String propPermission = null; + + /** + * The persistent property + */ + private Boolean propPersistent = null; + + /** + * The process property + */ + private String propProcess = null; + + /** + * The taskAffinity property + */ + private String propTaskAffinity = null; + + /** + * The theme property + */ + private String propTheme = null; + + /** + * Default constructor + * + * @param name The name property. It must not be null. + */ + public ApplicationNode(String name) + { + super(name); + } + + /* (non-Javadoc) + * @see com.motorola.studio.android.model.manifest.dom.AndroidManifestNode#canContains(com.motorola.studio.android.model.manifest.dom.AndroidManifestNode.NodeType) + */ + @Override + protected boolean canContains(NodeType nodeType) + { + return (nodeType == NodeType.Activity) || (nodeType == NodeType.ActivityAlias) + || (nodeType == NodeType.Service) || (nodeType == NodeType.Receiver) + || (nodeType == NodeType.Provider) || (nodeType == NodeType.UsesLibrary) + || (nodeType == NodeType.Comment) || (nodeType == NodeType.MetaData); + } + + /* (non-Javadoc) + * @see com.motorola.studio.android.model.manifest.dom.AbstractIconLabelNameNode#addAdditionalProperties() + */ + @Override + protected void addAdditionalProperties() + { + if (propAllowClearUserData != null) + { + properties.put(PROP_ALLOWCLEARUSERDATA, propAllowClearUserData.toString()); + } + + if (propAllowTaskReparenting != null) + { + properties.put(PROP_ALLOWTASKREPARENTING, propAllowTaskReparenting.toString()); + } + + if (propDebuggable != null) + { + properties.put(PROP_DEBUGGABLE, propDebuggable.toString()); + } + + if (propDescription != null) + { + properties.put(PROP_DESCRIPTION, propDescription); + } + + if (propEnabled != null) + { + properties.put(PROP_ENABLED, propEnabled.toString()); + } + + if (propHasCode != null) + { + properties.put(PROP_HASCODE, propHasCode.toString()); + } + + if (propManageSpaceActivity != null) + { + properties.put(PROP_MANAGESPACEACTIVITY, propManageSpaceActivity); + } + + if (propPermission != null) + { + properties.put(PROP_PERMISSION, propPermission); + } + + if (propPersistent != null) + { + properties.put(PROP_PERSISTENT, propPersistent.toString()); + } + + if (propProcess != null) + { + properties.put(PROP_PROCESS, propProcess); + } + + if (propTaskAffinity != null) + { + properties.put(PROP_TASKAFFINITY, propTaskAffinity); + } + + if (propTheme != null) + { + properties.put(PROP_THEME, propTheme); + } + } + + /* (non-Javadoc) + * @see com.motorola.studio.android.model.manifest.dom.AndroidManifestNode#getNodeType() + */ + @Override + public NodeType getNodeType() + { + return NodeType.Application; + } + + /* (non-Javadoc) + * @see com.motorola.studio.android.model.manifest.dom.AndroidManifestNode#isNodeValid() + */ + @Override + protected boolean isNodeValid() + { + return super.isNodeValid(); + } + + /** + * Gets the allowClearUserData property value + * + * @return the allowClearUserData property value + */ + public Boolean getAllowClearUserData() + { + return propAllowClearUserData; + } + + /** + * Sets the allowClearUserData property value. Set it to null to remove it. + * + * @param allowClearUserData the allowClearUserData property value + */ + public void setAllowClearUserData(Boolean allowClearUserData) + { + this.propAllowClearUserData = allowClearUserData; + } + + /** + * Gets the allowTaskReparenting property value + * + * @return the allowTaskReparenting property value + */ + public Boolean getAllowTaskReparenting() + { + return propAllowTaskReparenting; + } + + /** + * Sets the allowTaskReparenting property value. Set it to null to remove it. + * + * @param allowTaskReparenting the allowTaskReparenting property value + */ + public void setAllowTaskReparenting(Boolean allowTaskReparenting) + { + this.propAllowTaskReparenting = allowTaskReparenting; + } + + /** + * Gets the debuggable property value + * + * @return the debuggable property value + */ + public Boolean getDebuggable() + { + return propDebuggable; + } + + /** + * Sets the debuggable property value. Set it to null to remove it. + * + * @param debuggable the debuggable property value + */ + public void setDebuggable(Boolean debuggable) + { + this.propDebuggable = debuggable; + } + + /** + * Gets the description property value + * + * @return the description property value + */ + public String getDescription() + { + return propDescription; + } + + /** + * Sets the description property value. Set it to null to remove it. + * + * @param description the description property value + */ + public void setDescription(String description) + { + this.propDescription = description; + } + + /** + * Gets the enabled property value + * + * @return the enabled property value + */ + public Boolean getEnabled() + { + return propEnabled; + } + + /** + * Sets the enabled property value. Set it to null to remove it. + * + * @param enabled the enabled property value + */ + public void setEnabled(Boolean enabled) + { + this.propEnabled = enabled; + } + + /** + * Gets the hasCode property value + * + * @return the hasCode property value + */ + public Boolean getHasCode() + { + return propHasCode; + } + + /** + * Sets the hasCode property value. Set it to null to remove it. + * + * @param hasCode the hasCode property value + */ + public void setHasCode(Boolean hasCode) + { + this.propHasCode = hasCode; + } + + /** + * Gets the manageSpaceActivity property value + * + * @return the manageSpaceActivity property value + */ + public String getManageSpaceActivity() + { + return propManageSpaceActivity; + } + + /** + * Sets the manageSpaceActivity property value. Set it to null to remove it. + * + * @param manageSpaceActivity the manageSpaceActivity property value + */ + public void setManageSpaceActivity(String manageSpaceActivity) + { + this.propManageSpaceActivity = manageSpaceActivity; + } + + /** + * Gets the permission property value + * + * @return the permission property value + */ + public String getPermission() + { + return propPermission; + } + + /** + * Sets the permission property value. Set it to null to remove it. + * + * @param permission the permission property value + */ + public void setPermission(String permission) + { + this.propPermission = permission; + } + + /** + * Gets the persistent property value + * + * @return the persistent property value + */ + public Boolean getPersistent() + { + return propPersistent; + } + + /** + * Sets the persistent property value. Set it to null to remove it. + * + * @param persistent the persistent property value + */ + public void setPersistent(Boolean persistent) + { + this.propPersistent = persistent; + } + + /** + * Gets the process property value + * + * @return the process property value + */ + public String getProcess() + { + return propProcess; + } + + /** + * Sets the process property value. Set it to null to remove it. + * + * @param process the process property value + */ + public void setProcess(String process) + { + this.propProcess = process; + } + + /** + * Gets the taskAffinity property value + * + * @return the taskAffinity property value + */ + public String getTaskAffinity() + { + return propTaskAffinity; + } + + /** + * Sets the taskAffinity property value. Set it to null to remove it. + * + * @param taskAffinity the taskAffinity property value + */ + public void setTaskAffinity(String taskAffinity) + { + this.propTaskAffinity = taskAffinity; + } + + /** + * Gets the theme property value + * + * @return the theme property value + */ + public String getTheme() + { + return propTheme; + } + + /** + * Sets the theme property value. Set it to null to remove it. + * + * @param theme the theme property value + */ + public void setTheme(String theme) + { + this.propTheme = theme; + } + + /** + * Adds an Activity Node to the Application Node + * + * @param activity The Activity Node + */ + public void addActivityNode(ActivityNode activity) + { + if (activity != null) + { + if (!children.contains(activity)) + { + children.add(activity); + } + } + } + + /** + * Retrieves all Activity Nodes from the Application Node + * + * @return all Activity Nodes from the Application Node + */ + public List<ActivityNode> getActivityNodes() + { + List<ActivityNode> activities = new LinkedList<ActivityNode>(); + + for (AndroidManifestNode node : getAllChildrenFromType(NodeType.Activity)) + { + activities.add((ActivityNode) node); + } + + return activities; + } + + /** + * Removes an Activity Node from the Application Node + * + * @param activity the Activity Node to be removed + */ + public void removeActivityNode(ActivityNode activity) + { + if (activity != null) + { + children.remove(activity); + } + } + + /** + * Adds an Activity Alias Node to the Application Node + * + * @param activityAlias The Activity Alias Node + */ + public void addActivityAliasNode(ActivityAliasNode activityAlias) + { + if (activityAlias != null) + { + if (!children.contains(activityAlias)) + { + children.add(activityAlias); + } + } + } + + /** + * Retrieves all Activity Alias Nodes from the Application Node + * + * @return all Activity Alias Nodes from the Application Node + */ + public List<ActivityAliasNode> getActivityAliasNodes() + { + List<ActivityAliasNode> activityAliases = new LinkedList<ActivityAliasNode>(); + + for (AndroidManifestNode node : getAllChildrenFromType(NodeType.ActivityAlias)) + { + activityAliases.add((ActivityAliasNode) node); + } + + return activityAliases; + } + + /** + * Removes an Activity Alias Node from the Application Node + * + * @param activityAlias the Activity Alias Node to be removed + */ + public void removeActivityAliasNode(ActivityAliasNode activityAlias) + { + if (activityAlias != null) + { + children.remove(activityAlias); + } + } + + /** + * Adds a Service Node to the Application Node + * + * @param service The Service Node + */ + public void addServiceNode(ServiceNode service) + { + if (service != null) + { + if (!children.contains(service)) + { + children.add(service); + } + } + } + + /** + * Retrieves all Service Nodes from the Application Node + * + * @return all Service Nodes from the Application Node + */ + public List<ServiceNode> getServiceNodes() + { + List<ServiceNode> services = new LinkedList<ServiceNode>(); + + for (AndroidManifestNode node : getAllChildrenFromType(NodeType.Service)) + { + services.add((ServiceNode) node); + } + + return services; + } + + /** + * Removes a Service Node from the Application Node + * + * @param service the Service Node to be removed + */ + public void removeServiceNode(ServiceNode service) + { + if (service != null) + { + children.remove(service); + } + } + + /** + * Adds a Receiver Node to the Application Node + * + * @param receiver The Receiver Node + */ + public void addReceiverNode(ReceiverNode receiver) + { + if (receiver != null) + { + if (!children.contains(receiver)) + { + children.add(receiver); + } + } + } + + /** + * Retrieves all Receiver Nodes from the Application Node + * + * @return all Receiver Nodes from the Application Node + */ + public List<ReceiverNode> getReceiverNodes() + { + List<ReceiverNode> receivers = new LinkedList<ReceiverNode>(); + + for (AndroidManifestNode node : getAllChildrenFromType(NodeType.Receiver)) + { + receivers.add((ReceiverNode) node); + } + + return receivers; + } + + /** + * Removes a Receiver Node from the Application Node + * + * @param receiver the Receiver Node to be removed + */ + public void removeReceiverNode(ReceiverNode receiver) + { + if (receiver != null) + { + children.remove(receiver); + } + } + + /** + * Adds a Provider Node to the Application Node + * + * @param provider The Provider Node + */ + public void addProviderNode(ProviderNode provider) + { + if (provider != null) + { + if (!children.contains(provider)) + { + children.add(provider); + } + } + } + + /** + * Retrieves all Provider Nodes from the Application Node + * + * @return all Provider Nodes from the Application Node + */ + public List<ProviderNode> getProviderNodes() + { + List<ProviderNode> providers = new LinkedList<ProviderNode>(); + + for (AndroidManifestNode node : getAllChildrenFromType(NodeType.Provider)) + { + providers.add((ProviderNode) node); + } + + return providers; + } + + /** + * Removes a Provider Node from the Application Node + * + * @param provider the Provider Node to be removed + */ + public void removeProviderNode(ProviderNode provider) + { + if (provider != null) + { + children.remove(provider); + } + } + + /** + * Adds an Uses Library Node to the Application Node + * + * @param usesLibrary The Uses Library Node + */ + public void addUsesLibraryNode(UsesLibraryNode usesLibrary) + { + if (usesLibrary != null) + { + if (!children.contains(usesLibrary)) + { + children.add(usesLibrary); + } + } + } + + /** + * Retrieves all Uses Library Nodes from the Application Node + * + * @return all Uses Library Nodes from the Application Node + */ + public List<UsesLibraryNode> getUsesLibraryNodes() + { + List<UsesLibraryNode> usesLibraries = new LinkedList<UsesLibraryNode>(); + + for (AndroidManifestNode node : getAllChildrenFromType(NodeType.UsesLibrary)) + { + usesLibraries.add((UsesLibraryNode) node); + } + + return usesLibraries; + } + + /** + * Removes an Uses Library Node from the Application Node + * + * @param usesLibrary the Uses Library Node to be removed + */ + public void removeUsesLibraryNode(UsesLibraryNode usesLibrary) + { + if (usesLibrary != null) + { + children.remove(usesLibrary); + } + } + + /* (non-Javadoc) + * @see com.motorola.studio.android.model.manifest.dom.AndroidManifestNode#getSpecificNodeErrors() + */ + @Override + protected List<IStatus> getSpecificNodeProblems() + { + return null; + } +} |