summaryrefslogtreecommitdiff
path: root/src/plugins/common/src/com/motorola/studio/android/model/manifest/dom/ApplicationNode.java
diff options
context:
space:
mode:
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.java735
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;
+ }
+}