summaryrefslogtreecommitdiff
path: root/src/plugins/common/src/com/motorola/studio/android/common/utilities/TargetDataReader.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/common/src/com/motorola/studio/android/common/utilities/TargetDataReader.java')
-rw-r--r--src/plugins/common/src/com/motorola/studio/android/common/utilities/TargetDataReader.java124
1 files changed, 124 insertions, 0 deletions
diff --git a/src/plugins/common/src/com/motorola/studio/android/common/utilities/TargetDataReader.java b/src/plugins/common/src/com/motorola/studio/android/common/utilities/TargetDataReader.java
new file mode 100644
index 0000000..01cfea8
--- /dev/null
+++ b/src/plugins/common/src/com/motorola/studio/android/common/utilities/TargetDataReader.java
@@ -0,0 +1,124 @@
+/*
+* 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.common.utilities;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Knows how to get activity, receiver and/or service actions information from a target
+ */
+public class TargetDataReader
+{
+ //path inside <Android_SDK>\platforms\<Target>\data\activity_actions.txt
+ private final File activityActionsFile;
+
+ //path inside <Android_SDK>\platforms\<Target>\data\broadcast_actions.txt
+ private final File broadCastActionsFile;
+
+ //path inside <Android_SDK>\platforms\<Target>\data\service_actions.txt
+ private final File serviceActionsFile;
+
+ //path inside <Android_SDK>\platforms\<Target>\data\categories.txt
+ private final File categoriesFile;
+
+ /**
+ * @param androidTarget path to <android_sdk_root>/platforms/<target_name>
+ */
+ public TargetDataReader(File androidTarget)
+ {
+ File dataFolder = new File(androidTarget, "data"); //$NON-NLS-1$
+ this.activityActionsFile = new File(dataFolder, "activity_actions.txt"); //$NON-NLS-1$
+ this.broadCastActionsFile = new File(dataFolder, "broadcast_actions.txt"); //$NON-NLS-1$
+ this.serviceActionsFile = new File(dataFolder, "service_actions.txt"); //$NON-NLS-1$
+ this.categoriesFile = new File(dataFolder, "categories.txt"); //$NON-NLS-1$
+ }
+
+ private List<String> readItems(File file) throws IOException
+ {
+ List<String> items = new ArrayList<String>();
+ BufferedReader bufferedReader = null;
+ FileReader reader = null;
+ try
+ {
+ reader = new FileReader(file);
+ bufferedReader = new BufferedReader(reader);
+
+ String line;
+ while ((line = bufferedReader.readLine()) != null)
+ {
+ items.add(line.trim());
+ }
+ }
+ finally
+ {
+ if (reader != null)
+ {
+ reader.close();
+ }
+ if (bufferedReader != null)
+ {
+ bufferedReader.close();
+ }
+ }
+ return items;
+ }
+
+ /**
+ * Reads activity actions file and creates the list of activity actions
+ * @return list of activityActions available
+ * @throws IOException if file not found, or if there is any problem reading the activity_actions file
+ */
+ public List<String> getActivityActions() throws IOException
+ {
+ return readItems(activityActionsFile);
+ }
+
+ /**
+ * Reads service actions file and creates the list of service actions
+ * @return list of serviceActions available
+ * @throws IOException if file not found, or if there is any problem reading the service_actions file
+ */
+ public List<String> getServiceActions() throws IOException
+ {
+ return readItems(serviceActionsFile);
+ }
+
+ /**
+ * Reads broadcast receiver actions file and creates the list of broadcast receiver actions
+ * @return list of broadcastReceiverActions available
+ * @throws IOException if file not found, or if there is any problem reading the broadcast_actions file
+ */
+ public List<String> getReceiverActions() throws IOException
+ {
+ return readItems(broadCastActionsFile);
+ }
+
+ /**
+ * Reads categories file and creates the list of categories available in the target
+ * @return list of Intent Filters Categories available
+ * @throws IOException if file not found, or if there is any problem reading the broadcast_actions file
+ */
+ public List<String> getIntentFilterCategories() throws IOException
+ {
+ return readItems(categoriesFile);
+ }
+
+}