8000 strip "\Bundle\" only namespaces in default service naming strategy · Koc/idea-php-symfony2-plugin@0925575 · GitHub
[go: up one dir, main page]

Skip to content

Commit 0925575

Browse files
committed
strip "\Bundle\" only namespaces in default service naming strategy
1 parent c4f4bf1 commit 0925575

File tree

2 files changed

+19
-9
lines changed

2 files changed

+19
-9
lines changed

src/fr/adrienbrault/idea/symfony2plugin/action/generator/naming/DefaultServiceNameStrategy.java

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import java.util.ArrayList;
88
import java.util.Arrays;
99
import java.util.Collection;
10+
import java.util.stream.Collectors;
1011

1112
/**
1213
* @author Daniel Espendiller <daniel@espendiller.net>
@@ -29,7 +30,13 @@ public String getServiceName(@NotNull ServiceNameStrategyParameter parameter) {
2930
int x = -1;
3031
for (int i = 0; i < split.length; i++) {
3132
if (split[i].endsWith("Bundle")) {
32-
split[i] = split[i].substring(0, split[i].length() - "Bundle".length());
33+
34+
// bundle this our namespace switch:
35+
// but dont add on "\Bundle\" only namespace
36+
if(split[i].length() > "bundle".length()) {
37+
split[i] = split[i].substring(0, split[i].length() - "bundle".length());
38+
}
39+
3340
x = i + 1;
3441
}
3542
}
@@ -52,14 +59,11 @@ public String getServiceName(@NotNull ServiceNameStrategyParameter parameter) {
5259
return formatParts(Arrays.asList(split));
5360
}
5461

55-
private String formatParts(Collection<String> parts) {
56-
57-
Collection<String> partString = new ArrayList<String>();
58-
for (String s : parts) {
59-
partString.add(fr.adrienbrault.idea.symfony2plugin.util.StringUtils.underscore(s));
60-
}
62+
private String formatParts(@NotNull Collection<String> parts) {
63+
Collection<String> partString = parts.stream()
64+
.map(fr.adrienbrault.idea.symfony2plugin.util.StringUtils::underscore)
65+
.collect(Collectors.toCollection(ArrayList::new));
6166

6267
return StringUtils.join(partString, ".");
6368
}
64-
6569
}

tests/fr/adrienbrault/idea/symfony2plugin/tests/actions/generator/naming/DefaultServiceNameStrategyTest.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
* @author Daniel Espendiller <daniel@espendiller.net>
99
*/
1010

11-
public class DefaultServiceNameStrategyTest extends SymfonyLightCodeInsightFixtureTestCase {
11+
public class DefaultServiceNameStrategyTest extends SymfonyLightCodeInsightFixtureTestCase {
1212

1313
public void testGetServiceName() {
1414

@@ -27,6 +27,12 @@ public void testGetServiceName() {
2727
assertEquals("foo", defaultNaming.getServiceName(getParameter("\\FooBundle\\")));
2828
}
2929

30+
public void testThatOnlyBundleInSubNamespaceShouldBeStripped() {
31+
DefaultServiceNameStrategy defaultNaming = new DefaultServiceNameStrategy();
32+
assertEquals("foobar_foo_bar_foo_bar_bundle.foo_bar.foo_bar", defaultNaming.getServiceName(getParameter("Foobar\\FooBar\\FooBar\\Bundle\\FooBar\\FooBar")));
33+
assertEquals("foobar_foo_bar_foo_bar_fo.foo_bar.foo_bar", defaultNaming.getServiceName(getParameter("Foobar\\FooBar\\FooBar\\FoBundle\\FooBar\\FooBar")));
34+
}
35+
3036
private ServiceNameStrategyParameter getParameter(String className) {
3137
return new ServiceNameStrategyParameter(getProject(), className);
3238
}

0 commit comments

Comments
 (0)
0