Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/internal/rpm/ui/editor/RpmMacroProposalsList.java')
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/internal/rpm/ui/editor/RpmMacroProposalsList.java380
1 files changed, 190 insertions, 190 deletions
diff --git a/rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/internal/rpm/ui/editor/RpmMacroProposalsList.java b/rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/internal/rpm/ui/editor/RpmMacroProposalsList.java
index 44d93bb376..cc9976007b 100644
--- a/rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/internal/rpm/ui/editor/RpmMacroProposalsList.java
+++ b/rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/internal/rpm/ui/editor/RpmMacroProposalsList.java
@@ -31,195 +31,195 @@ import org.eclipse.linuxtools.rpm.core.utils.Utils;
*/
public class RpmMacroProposalsList {
- private static final String EMPTY_STRING = ""; //$NON-NLS-1$
-
- private Map<String, String> macroMap = new HashMap<>();
-
- private String toStringStr;
-
- /**
- * Default contructor
- */
- public RpmMacroProposalsList() {
- buildMacroList();
- }
-
- /**
- * Build the macro list.
- */
- public final void buildMacroList() {
- for (String definedMacro: SpecfileScanner.DEFINED_MACROS){
- macroMap.put(definedMacro, Messages.RpmMacroProposalsList_0);
- //TODO find way to provide info about buildin macros.
- }
- String macroProposalsPaths = Activator.getDefault()
- .getPreferenceStore().getString(
- PreferenceConstants.P_MACRO_PROPOSALS_FILESPATH);
- String[] paths = macroProposalsPaths.split(";"); //$NON-NLS-1$
- // paths must be reversed because the last value added
- // into a Map overwrites the first.
- paths = reverseStringArray(paths);
- for (String path : paths) {
- if (!path.equals(EMPTY_STRING)) {
- File pathFile = new File(path);
- if (pathFile.exists()) {
- if (pathFile.isDirectory()) {
- File[] macrosFiles = pathFile.listFiles();
- for (File macrosFile : macrosFiles) {
- addMacroToMap(macrosFile.getAbsolutePath());
- }
- } else {
- addMacroToMap(path);
- }
- }
- }
- }
- }
-
- /**
- * Add macro definition to the map
- *
- * @param filename
- * macro file definition.
- */
- private void addMacroToMap(String filename) {
- String line = EMPTY_STRING;
- try (BufferedReader reader = new BufferedReader(new InputStreamReader(
- new FileInputStream(filename)))){
- line = reader.readLine();
- String key = EMPTY_STRING, value = EMPTY_STRING;
- while (line != null) {
- if (line.startsWith("%")) { //$NON-NLS-1$
- String[] item = line.split("\t+| ", 2); //$NON-NLS-1$
- try {
- // Get values on more than one line
- if (line.trim().endsWith("\\")) { //$NON-NLS-1$
- value = "\n"; //$NON-NLS-1$
- boolean isKeyLine = true;
- while (line.trim().endsWith("\\")) { //$NON-NLS-1$
- if (isKeyLine) {
- isKeyLine = false;
- key = item[0];
- if (item.length > 1) {
- value += item[1].replaceAll("\\\\", "\n\n"); //$NON-NLS-1$//$NON-NLS-2$
- }
- } else {
- value += line.substring(0,
- line.length() - 1).trim()
- + "\n\t"; //$NON-NLS-1$
- }
- line = reader.readLine();
- }
- } else {
- key = item[0];
- value = item[1];
- }
- key = key.trim();
- value = value.trim();
- macroMap.put(key, value);
- toStringStr += key + ": " + value + "\n"; //$NON-NLS-1$ //$NON-NLS-2$
- } catch (Exception e) {
- line = reader.readLine();
- continue;
- }
- value = EMPTY_STRING;
- key = EMPTY_STRING;
- }
- line = reader.readLine();
- }
- } catch (IOException e) {
- SpecfileLog.logError(e);
- }
- }
-
- /**
- * Reverse a <code>String</code> array.
- *
- * @param stringArrayToReverse
- * the string array to reverse.
- * @return the reversed <code>String</code> array.
- */
- private String[] reverseStringArray(String[] stringArrayToReverse) {
- int left = 0;
- int right = stringArrayToReverse.length - 1;
- while (left < right) {
- String tmp = stringArrayToReverse[left];
- stringArrayToReverse[left] = stringArrayToReverse[right];
- stringArrayToReverse[right] = tmp;
- left++;
- right--;
- }
- return stringArrayToReverse;
- }
-
- /**
- * Get proposals for a given prefix
- *
- * @param prefix The prefix to search.
- * @return a <code>Map</code> of proposals.
- */
- public Map<String, String> getProposals(String prefix) {
- Map<String, String> proposalsMap = new HashMap<>(macroMap.size());
- for (Map.Entry<String, String> entry: macroMap.entrySet()) {
- // Get proposals for macro begin with { char too.
- if (entry.getKey().startsWith(prefix.replaceFirst("\\{", EMPTY_STRING))) { //$NON-NLS-1$
- proposalsMap.put(entry.getKey(), entry.getValue());
- }
- }
- // Sort proposals
- return new TreeMap<>(proposalsMap);
- }
-
- /**
- * Get the value for a given macro.
- *
- * @param key Key to retrieve value.
- * @return a string representation of the value
- */
- public String getValue(String key) {
- String value = macroMap.get("%" + key); //$NON-NLS-1$
- // get proposals for macro contain ? too.
- if (value == null) {
- value = macroMap.get(("%" + key).replaceFirst("\\?", EMPTY_STRING)); //$NON-NLS-1$ //$NON-NLS-2$
- }
- return value;
- }
-
- /**
- * Find a key in the macroMap
- *
- * @param keyToFind The key to find.
- * @return return the value
- */
- public boolean findKey(String keyToFind) {
- return macroMap.containsKey(keyToFind);
- }
-
- /**
- * Return the ouput of the <code>rpm --eval</code> command for a given
- * macro.
- *
- * @param macroName The macro name to eval.
- * @return the resolved macro content.
- */
- public static String getMacroEval(String macroName) {
- String eval = EMPTY_STRING;
- try {
- eval = Utils.runCommandToString( "rpm", "--eval", macroName); //$NON-NLS-1$//$NON-NLS-2$
- } catch (IOException e) {
- SpecfileLog.logError(e);
- }
- return eval.trim();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see java.lang.Object#toString()
- */
- @Override
- public String toString() {
- return toStringStr;
- }
+ private static final String EMPTY_STRING = ""; //$NON-NLS-1$
+
+ private Map<String, String> macroMap = new HashMap<>();
+
+ private String toStringStr;
+
+ /**
+ * Default contructor
+ */
+ public RpmMacroProposalsList() {
+ buildMacroList();
+ }
+
+ /**
+ * Build the macro list.
+ */
+ public final void buildMacroList() {
+ for (String definedMacro: SpecfileScanner.DEFINED_MACROS){
+ macroMap.put(definedMacro, Messages.RpmMacroProposalsList_0);
+ //TODO find way to provide info about buildin macros.
+ }
+ String macroProposalsPaths = Activator.getDefault()
+ .getPreferenceStore().getString(
+ PreferenceConstants.P_MACRO_PROPOSALS_FILESPATH);
+ String[] paths = macroProposalsPaths.split(";"); //$NON-NLS-1$
+ // paths must be reversed because the last value added
+ // into a Map overwrites the first.
+ paths = reverseStringArray(paths);
+ for (String path : paths) {
+ if (!path.equals(EMPTY_STRING)) {
+ File pathFile = new File(path);
+ if (pathFile.exists()) {
+ if (pathFile.isDirectory()) {
+ File[] macrosFiles = pathFile.listFiles();
+ for (File macrosFile : macrosFiles) {
+ addMacroToMap(macrosFile.getAbsolutePath());
+ }
+ } else {
+ addMacroToMap(path);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Add macro definition to the map
+ *
+ * @param filename
+ * macro file definition.
+ */
+ private void addMacroToMap(String filename) {
+ String line = EMPTY_STRING;
+ try (BufferedReader reader = new BufferedReader(new InputStreamReader(
+ new FileInputStream(filename)))){
+ line = reader.readLine();
+ String key = EMPTY_STRING, value = EMPTY_STRING;
+ while (line != null) {
+ if (line.startsWith("%")) { //$NON-NLS-1$
+ String[] item = line.split("\t+| ", 2); //$NON-NLS-1$
+ try {
+ // Get values on more than one line
+ if (line.trim().endsWith("\\")) { //$NON-NLS-1$
+ value = "\n"; //$NON-NLS-1$
+ boolean isKeyLine = true;
+ while (line.trim().endsWith("\\")) { //$NON-NLS-1$
+ if (isKeyLine) {
+ isKeyLine = false;
+ key = item[0];
+ if (item.length > 1) {
+ value += item[1].replaceAll("\\\\", "\n\n"); //$NON-NLS-1$//$NON-NLS-2$
+ }
+ } else {
+ value += line.substring(0,
+ line.length() - 1).trim()
+ + "\n\t"; //$NON-NLS-1$
+ }
+ line = reader.readLine();
+ }
+ } else {
+ key = item[0];
+ value = item[1];
+ }
+ key = key.trim();
+ value = value.trim();
+ macroMap.put(key, value);
+ toStringStr += key + ": " + value + "\n"; //$NON-NLS-1$ //$NON-NLS-2$
+ } catch (Exception e) {
+ line = reader.readLine();
+ continue;
+ }
+ value = EMPTY_STRING;
+ key = EMPTY_STRING;
+ }
+ line = reader.readLine();
+ }
+ } catch (IOException e) {
+ SpecfileLog.logError(e);
+ }
+ }
+
+ /**
+ * Reverse a <code>String</code> array.
+ *
+ * @param stringArrayToReverse
+ * the string array to reverse.
+ * @return the reversed <code>String</code> array.
+ */
+ private String[] reverseStringArray(String[] stringArrayToReverse) {
+ int left = 0;
+ int right = stringArrayToReverse.length - 1;
+ while (left < right) {
+ String tmp = stringArrayToReverse[left];
+ stringArrayToReverse[left] = stringArrayToReverse[right];
+ stringArrayToReverse[right] = tmp;
+ left++;
+ right--;
+ }
+ return stringArrayToReverse;
+ }
+
+ /**
+ * Get proposals for a given prefix
+ *
+ * @param prefix The prefix to search.
+ * @return a <code>Map</code> of proposals.
+ */
+ public Map<String, String> getProposals(String prefix) {
+ Map<String, String> proposalsMap = new HashMap<>(macroMap.size());
+ for (Map.Entry<String, String> entry: macroMap.entrySet()) {
+ // Get proposals for macro begin with { char too.
+ if (entry.getKey().startsWith(prefix.replaceFirst("\\{", EMPTY_STRING))) { //$NON-NLS-1$
+ proposalsMap.put(entry.getKey(), entry.getValue());
+ }
+ }
+ // Sort proposals
+ return new TreeMap<>(proposalsMap);
+ }
+
+ /**
+ * Get the value for a given macro.
+ *
+ * @param key Key to retrieve value.
+ * @return a string representation of the value
+ */
+ public String getValue(String key) {
+ String value = macroMap.get("%" + key); //$NON-NLS-1$
+ // get proposals for macro contain ? too.
+ if (value == null) {
+ value = macroMap.get(("%" + key).replaceFirst("\\?", EMPTY_STRING)); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ return value;
+ }
+
+ /**
+ * Find a key in the macroMap
+ *
+ * @param keyToFind The key to find.
+ * @return return the value
+ */
+ public boolean findKey(String keyToFind) {
+ return macroMap.containsKey(keyToFind);
+ }
+
+ /**
+ * Return the ouput of the <code>rpm --eval</code> command for a given
+ * macro.
+ *
+ * @param macroName The macro name to eval.
+ * @return the resolved macro content.
+ */
+ public static String getMacroEval(String macroName) {
+ String eval = EMPTY_STRING;
+ try {
+ eval = Utils.runCommandToString( "rpm", "--eval", macroName); //$NON-NLS-1$//$NON-NLS-2$
+ } catch (IOException e) {
+ SpecfileLog.logError(e);
+ }
+ return eval.trim();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see java.lang.Object#toString()
+ */
+ @Override
+ public String toString() {
+ return toStringStr;
+ }
}

Back to the top