1. Added ability to specify defaul attributes and selection for all templates attributes
[fedora-idea.git] / lang-impl / src / com / intellij / ide / fileTemplates / actions / AttributesDefaults.java
blob1647e77f3aee81f0f7b6b545edf3ffc6d6a55789
1 package com.intellij.ide.fileTemplates.actions;
3 import com.intellij.openapi.util.Pair;
4 import com.intellij.openapi.util.TextRange;
5 import com.intellij.util.containers.HashMap;
6 import org.jetbrains.annotations.NotNull;
7 import org.jetbrains.annotations.Nullable;
8 import org.jetbrains.annotations.NonNls;
10 import java.util.Map;
12 /**
13 * @author Roman Chernyatchik
15 public class AttributesDefaults {
16 private final String myDefaultName;
17 private final TextRange myDefaultRange;
18 private final Map<String, Pair<String, TextRange>> myNamesToValueAndRangeMap = new HashMap<String, Pair<String, TextRange>>();
20 public AttributesDefaults(@NonNls @Nullable final String defaultName,
21 @Nullable final TextRange defaultRange) {
22 myDefaultName = defaultName;
23 myDefaultRange = defaultRange;
26 public AttributesDefaults(@NonNls @Nullable final String defaultName) {
27 this(defaultName, null);
30 public AttributesDefaults() {
31 this(null, null);
34 @Nullable
35 public String getDefaultFileName() {
36 return myDefaultName;
38 @Nullable
39 public TextRange getDefaultFileNameSelection() {
40 return myDefaultRange;
43 public void add(@NonNls @NotNull final String attributeKey,
44 @NonNls @NotNull final String value,
45 @Nullable final TextRange selectionRange) {
46 myNamesToValueAndRangeMap.put(attributeKey, new Pair<String, TextRange>(value, selectionRange));
49 public void add(@NonNls @NotNull final String attributeKey,
50 @NonNls @NotNull final String value) {
51 add(attributeKey, value, null);
54 @Nullable
55 public TextRange getRangeFor(@NonNls @NotNull final String attributeKey) {
56 final Pair<String, TextRange> valueAndRange = myNamesToValueAndRangeMap.get(attributeKey);
57 return valueAndRange == null ? null : valueAndRange.second;
60 @Nullable
61 public String getDefaultValueFor(@NonNls @NotNull final String attributeKey) {
62 final Pair<String, TextRange> valueAndRange = myNamesToValueAndRangeMap.get(attributeKey);
63 return valueAndRange == null ? null : valueAndRange.first;