/maven-api/src/main/java/org/jboss/forge/maven/plugins/ConfigurationBuilder.java

https://github.com/cunningt/core-1 · Java · 123 lines · 80 code · 19 blank · 24 comment · 1 complexity · fee9c6e753d28bb40f37ff9c35e214f0 MD5 · raw file

  1. /*
  2. * JBoss, Home of Professional Open Source
  3. * Copyright 2011, Red Hat, Inc., and individual contributors
  4. * by the @authors tag. See the copyright.txt in the distribution for a
  5. * full listing of individual contributors.
  6. *
  7. * This is free software; you can redistribute it and/or modify it
  8. * under the terms of the GNU Lesser General Public License as
  9. * published by the Free Software Foundation; either version 2.1 of
  10. * the License, or (at your option) any later version.
  11. *
  12. * This software is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  15. * Lesser General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU Lesser General Public
  18. * License along with this software; if not, write to the Free
  19. * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  20. * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  21. */
  22. package org.jboss.forge.maven.plugins;
  23. import java.util.List;
  24. /**
  25. * @author <a href="mailto:paul.bakker.nl@gmail.com">Paul Bakker</a>
  26. */
  27. public class ConfigurationBuilder implements Configuration
  28. {
  29. private final ConfigurationImpl mavenPluginConfiguration = new ConfigurationImpl();
  30. private MavenPluginBuilder origin;
  31. @Override
  32. public ConfigurationElement getConfigurationElement(final String element)
  33. {
  34. return mavenPluginConfiguration.getConfigurationElement(element);
  35. }
  36. @Override
  37. public boolean hasConfigurationElement(final String configElement)
  38. {
  39. return mavenPluginConfiguration.hasConfigurationElement(configElement);
  40. }
  41. @Override
  42. public boolean hasConfigurationElements()
  43. {
  44. return mavenPluginConfiguration.hasConfigurationElements();
  45. }
  46. @Override
  47. public List<ConfigurationElement> listConfigurationElements()
  48. {
  49. return mavenPluginConfiguration.listConfigurationElements();
  50. }
  51. @Override
  52. public Configuration addConfigurationElement(final ConfigurationElement element)
  53. {
  54. return mavenPluginConfiguration.addConfigurationElement(element);
  55. }
  56. @Override
  57. public void removeConfigurationElement(final String elementName)
  58. {
  59. mavenPluginConfiguration.removeConfigurationElement(elementName);
  60. }
  61. @Override
  62. public String toString()
  63. {
  64. return mavenPluginConfiguration.toString();
  65. }
  66. private ConfigurationBuilder()
  67. {
  68. }
  69. public ConfigurationElementBuilder createConfigurationElement(final String name)
  70. {
  71. ConfigurationElementBuilder builder = ConfigurationElementBuilder.create(this);
  72. builder.setName(name);
  73. mavenPluginConfiguration.addConfigurationElement(builder);
  74. return builder;
  75. }
  76. private ConfigurationBuilder(final MavenPluginBuilder pluginBuilder)
  77. {
  78. origin = pluginBuilder;
  79. }
  80. private ConfigurationBuilder(final Configuration existingConfig, final MavenPluginBuilder pluginBuilder)
  81. {
  82. origin = pluginBuilder;
  83. for (ConfigurationElement element : existingConfig.listConfigurationElements())
  84. {
  85. mavenPluginConfiguration.addConfigurationElement(element);
  86. }
  87. }
  88. public static ConfigurationBuilder create()
  89. {
  90. return new ConfigurationBuilder();
  91. }
  92. public static ConfigurationBuilder create(final MavenPluginBuilder pluginBuilder)
  93. {
  94. return new ConfigurationBuilder(pluginBuilder);
  95. }
  96. public static ConfigurationBuilder create(final Configuration existingConfig, final MavenPluginBuilder pluginBuilder)
  97. {
  98. return new ConfigurationBuilder(existingConfig, pluginBuilder);
  99. }
  100. public MavenPluginBuilder getOrigin()
  101. {
  102. return origin;
  103. }
  104. }