Skip to content

Commit

Permalink
reuse empty xml and string patterns
Browse files Browse the repository at this point in the history
  • Loading branch information
donnerpeter committed Apr 20, 2016
1 parent c51af45 commit be45aaf
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public class StandardPatterns {
private static final FalsePattern FALSE_PATTERN = new FalsePattern();

public static StringPattern string() {
return new StringPattern();
return StringPattern.STRING_PATTERN;
}

public static CharPattern character() {
Expand Down
24 changes: 12 additions & 12 deletions platform/core-api/src/com/intellij/patterns/StringPattern.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,21 +34,21 @@
* @author peter
*/
public class StringPattern extends ObjectPattern<String, StringPattern> {
private static final InitialPatternCondition<String> CONDITION = new InitialPatternCondition<String>(String.class) {
@Override
public boolean accepts(@Nullable final Object o, final ProcessingContext context) {
return o instanceof String;
}
static final StringPattern STRING_PATTERN = new StringPattern();

private StringPattern() {
super(new InitialPatternCondition<String>(String.class) {
@Override
public boolean accepts(@Nullable final Object o, final ProcessingContext context) {
return o instanceof String;
}

@Override
public void append(@NotNull @NonNls final StringBuilder builder, final String indent) {
builder.append("string()");
}
};

protected StringPattern() {
super(CONDITION);
@Override
public void append(@NotNull @NonNls final StringBuilder builder, final String indent) {
builder.append("string()");
}
});
}

@NotNull
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,12 @@
* @author peter
*/
public class XmlAttributeValuePattern extends XmlElementPattern<XmlAttributeValue,XmlAttributeValuePattern>{
private static final InitialPatternCondition<XmlAttributeValue> CONDITION = new InitialPatternCondition<XmlAttributeValue>(XmlAttributeValue.class) {
static final XmlAttributeValuePattern XML_ATTRIBUTE_VALUE_PATTERN = new XmlAttributeValuePattern(new InitialPatternCondition<XmlAttributeValue>(XmlAttributeValue.class) {
@Override
public boolean accepts(@Nullable final Object o, final ProcessingContext context) {
return o instanceof XmlAttributeValue;
}
};

public XmlAttributeValuePattern() {
this(CONDITION);
}
});

public XmlAttributeValuePattern(InitialPatternCondition<XmlAttributeValue> condition) {
super(condition);
Expand Down
5 changes: 3 additions & 2 deletions xml/xml-psi-api/src/com/intellij/patterns/XmlPatterns.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
* @author peter
*/
public class XmlPatterns extends PlatformPatterns {

public static XmlFilePattern.Capture xmlFile() {
return new XmlFilePattern.Capture();
}
Expand All @@ -41,7 +42,7 @@ public static XmlAttributeValuePattern xmlAttributeValue(String... localNames) {
}

public static XmlAttributeValuePattern xmlAttributeValue() {
return new XmlAttributeValuePattern();
return XmlAttributeValuePattern.XML_ATTRIBUTE_VALUE_PATTERN;
}

public static XmlNamedElementPattern.XmlAttributePattern xmlAttribute(@NonNls String localName) {
Expand All @@ -53,7 +54,7 @@ public static XmlNamedElementPattern.XmlAttributePattern xmlAttribute() {
}

public static XmlTagPattern.Capture xmlTag() {
return new XmlTagPattern.Capture();
return XmlTagPattern.Capture.XML_TAG_PATTERN;
}

public static XmlElementPattern.XmlTextPattern xmlText() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,5 +114,6 @@ public Self withoutAttributeValue(@NotNull @NonNls final String attributeName, @
}

public static class Capture extends XmlTagPattern<Capture> {
static final Capture XML_TAG_PATTERN = new Capture();
}
}

0 comments on commit be45aaf

Please sign in to comment.