r1035 - trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin
Author: tchemit Date: 2011-01-26 14:23:17 +0100 (Wed, 26 Jan 2011) New Revision: 1035 Url: http://nuiton.org/repositories/revision/eugene/1035 Log: Evolution #1218: Add stereotypes and tagvalues in the available-data goal Modified: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/AvailableDataMojo.java Modified: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/AvailableDataMojo.java =================================================================== --- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/AvailableDataMojo.java 2011-01-26 12:45:00 UTC (rev 1034) +++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/AvailableDataMojo.java 2011-01-26 13:23:17 UTC (rev 1035) @@ -38,6 +38,7 @@ import java.util.Arrays; import java.util.EnumSet; +import java.util.LinkedHashMap; import java.util.Map; import java.util.Set; @@ -115,6 +116,10 @@ */ protected Map<String, ModelPropertiesUtil.ModelPropertiesProvider> modelPropertiesProviders; + protected Map<String, ModelPropertiesUtil.ModelPropertiesProvider> loadedProviders; + + protected ModelPropertiesUtil.ModelPropertiesProvider currentPropertiesProvider; + @Override public void execute() throws MojoExecutionException, MojoFailureException { StringBuilder buffer = new StringBuilder(); @@ -149,6 +154,19 @@ } } + if (safeDataTypes.contains(AvailableData.stereotype) || + safeDataTypes.contains(AvailableData.tagvalue)) { + + loadedProviders = new LinkedHashMap<String, ModelPropertiesUtil.ModelPropertiesProvider>(); + // init stores + for (Map.Entry<String, ModelPropertiesUtil.ModelPropertiesProvider> e : modelPropertiesProviders.entrySet()) { + ModelPropertiesUtil.ModelPropertiesProvider provider = ModelPropertiesUtil.newStore( + Arrays.asList(e.getValue()), + false + ); + loadedProviders.put(e.getKey(), provider); + } + } for (AvailableData data : safeDataTypes) { buffer.append("\n"); appendData(data, buffer); @@ -160,24 +178,68 @@ protected void appendData(AvailableData data, StringBuilder buffer) { - Map<String, ?> map = data.getData(this); + String dataType = data.name(); - int size = map.size(); - String dataType = data.name(); - if (size == 0) { - buffer.append("\nNo available ").append(dataType).append("."); - } else if (size == 1) { - buffer.append("\nFound one ").append(dataType).append(" : "); + if (data == AvailableData.tagvalue || data == AvailableData.stereotype) { + + int nbData = 0; + for (ModelPropertiesUtil.ModelPropertiesProvider provider : loadedProviders.values()) { + currentPropertiesProvider = provider; + nbData += data.getData(this).size(); + } + currentPropertiesProvider = null; + + String format = "\nFound %s %ss in %s provider(s) : %s\n"; + + buffer.append(String.format(format, + nbData, + dataType, + loadedProviders.size(), + loadedProviders.keySet()) + ); + + for (Map.Entry<String, ModelPropertiesUtil.ModelPropertiesProvider> e : loadedProviders.entrySet()) { + String providerName = e.getKey(); + ModelPropertiesUtil.ModelPropertiesProvider provider = e.getValue(); + currentPropertiesProvider = provider; + Map<String, ?> map = data.getData(this); + + int size = map.size(); + buffer.append("\nProvider [").append(providerName).append("] - "); + if (size == 0) { + buffer.append("No available ").append(dataType).append("."); + } else if (size == 1) { + buffer.append("Found one ").append(dataType).append(" : "); + } else { + buffer.append("Found "); + buffer.append(size); + buffer.append(" "); + buffer.append(dataType); + buffer.append("s : "); + } + for (Map.Entry<String, ?> e2 : map.entrySet()) { + data.toString(buffer, e2); + } + } } else { - buffer.append("\nFound "); - buffer.append(size); - buffer.append(" "); - buffer.append(dataType); - buffer.append("s : "); + Map<String, ?> map = data.getData(this); + + int size = map.size(); + if (size == 0) { + buffer.append("\nNo available ").append(dataType).append("."); + } else if (size == 1) { + buffer.append("\nFound one ").append(dataType).append(" : "); + } else { + buffer.append("\nFound "); + buffer.append(size); + buffer.append(" "); + buffer.append(dataType); + buffer.append("s : "); + } + for (Map.Entry<String, ?> e : map.entrySet()) { + data.toString(buffer, e); + } } - for (Map.Entry<String, ?> e : map.entrySet()) { - data.toString(buffer, e); - } } enum AvailableData { @@ -225,7 +287,7 @@ tagvalue { @Override public Map<String, ?> getData(AvailableDataMojo mojo) { - return mojo.getModelPropertiesProvider().getTagValueStore(); + return mojo.getCurrentPropertiesProvider().getTagValueStore(); } @Override @@ -258,7 +320,7 @@ stereotype { @Override public Map<String, ?> getData(AvailableDataMojo mojo) { - return mojo.getModelPropertiesProvider().getStereotypeStore(); + return mojo.getCurrentPropertiesProvider().getStereotypeStore(); } @Override @@ -306,6 +368,10 @@ } } + protected ModelPropertiesUtil.ModelPropertiesProvider getCurrentPropertiesProvider() { + return currentPropertiesProvider; + } + protected ModelPropertiesUtil.ModelPropertiesProvider getModelPropertiesProvider() { ModelPropertiesUtil.ModelPropertiesProvider provider;
participants (1)
-
tchemit@users.nuiton.org