[jboss-cvs] JBossAS SVN: r90661 - projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sat Jun 27 08:38:22 EDT 2009


Author: alesj
Date: 2009-06-27 08:38:21 -0400 (Sat, 27 Jun 2009)
New Revision: 90661

Added:
   projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/BeanMetaData2XML.java
   projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/ConverterFactory.java
Modified:
   projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/AliasMetaDataConverter.java
   projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/AnnotationMetaDataConverter.java
   projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/AttributeMetaDataConverter.java
   projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/AttributeValueMetaDataConverter.java
   projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/ConstructorMetaDataConverter.java
   projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/DependencyMetaDataConverter.java
   projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/DependencyValueMetaDataConverter.java
   projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/ElementValueMetaDataConverter.java
   projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/InjectionValueMetaDataConverter.java
   projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/JBXBValueMetaDataConverter.java
   projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/JavaBeanValueMetaDateConverter.java
   projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/MetaDataConverter.java
   projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/ServiceMetaDataConverter.java
   projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/TextValueMetaDataConverter.java
   projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/ValueFactoryMetaDataConverter.java
   projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/ValueMetaDataConverter.java
Log:
Add converter factory.

Modified: projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/AliasMetaDataConverter.java
===================================================================
--- projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/AliasMetaDataConverter.java	2009-06-26 22:07:20 UTC (rev 90660)
+++ projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/AliasMetaDataConverter.java	2009-06-27 12:38:21 UTC (rev 90661)
@@ -24,15 +24,26 @@
 import java.util.Collection;
 
 import org.jboss.beans.metadata.plugins.AbstractAliasMetaData;
+import org.jboss.beans.metadata.spi.AliasMetaData;
 
 /**
  * @author  <a href="flavia.rainone at jboss.com">Flavia Rainone</a>
  * @version $Revision$
  */
-class AliasMetaDataConverter extends AbstractMetaDataConverter<String, AbstractAliasMetaData>
+class AliasMetaDataConverter extends AbstractMetaDataConverter<String, AliasMetaData>
 {
-   public AbstractAliasMetaData toMCMetaData(String alias, Collection<String> unhandledAtributes)
+   public Class<String> input()
    {
+      return String.class;
+   }
+
+   public Class<AliasMetaData> output()
+   {
+      return AliasMetaData.class;
+   }
+
+   public AliasMetaData toMCMetaData(String alias, Collection<String> unhandledAtributes)
+   {
       AbstractAliasMetaData newAlias = new AbstractAliasMetaData();
       newAlias.setAliasValue(alias);
       return newAlias;
@@ -43,7 +54,7 @@
       return "alias";
    }
 
-   public String toXML(AbstractAliasMetaData beanMetaData)
+   public String toXML(AliasMetaData beanMetaData)
    {
       return simpleElement(beanMetaData.getAliasValue()); 
    }

Modified: projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/AnnotationMetaDataConverter.java
===================================================================
--- projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/AnnotationMetaDataConverter.java	2009-06-26 22:07:20 UTC (rev 90660)
+++ projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/AnnotationMetaDataConverter.java	2009-06-27 12:38:21 UTC (rev 90661)
@@ -24,6 +24,7 @@
 import java.util.Collection;
 
 import org.jboss.beans.metadata.plugins.AbstractAnnotationMetaData;
+import org.jboss.beans.metadata.spi.AnnotationMetaData;
 import org.jboss.system.metadata.ServiceAnnotationMetaData;
 
 /**
@@ -31,10 +32,20 @@
  * @version $Revision$
  *
  */
-class AnnotationMetaDataConverter extends AbstractMetaDataConverter <ServiceAnnotationMetaData, AbstractAnnotationMetaData>
+class AnnotationMetaDataConverter extends AbstractMetaDataConverter <ServiceAnnotationMetaData, AnnotationMetaData>
 {
-   public AbstractAnnotationMetaData toMCMetaData(ServiceAnnotationMetaData annotation, Collection<String> unhandled)
+   public Class<ServiceAnnotationMetaData> input()
    {
+      return ServiceAnnotationMetaData.class;
+   }
+
+   public Class<AnnotationMetaData> output()
+   {
+      return AnnotationMetaData.class;
+   }
+
+   public AnnotationMetaData toMCMetaData(ServiceAnnotationMetaData annotation, Collection<String> unhandled)
+   {
       return new AbstractAnnotationMetaData(annotation.getAnnotation());
    }
 
@@ -43,8 +54,9 @@
       return "annotation";
    }
 
-   public String toXML(AbstractAnnotationMetaData beanMetaData)
+   public String toXML(AnnotationMetaData beanMetaData)
    {
-      return simpleElement(beanMetaData.getAnnotation());
+      // TODO - check if this is proper output
+      return simpleElement(beanMetaData.getAnnotationInstance());
    }
 }
\ No newline at end of file

Modified: projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/AttributeMetaDataConverter.java
===================================================================
--- projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/AttributeMetaDataConverter.java	2009-06-26 22:07:20 UTC (rev 90660)
+++ projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/AttributeMetaDataConverter.java	2009-06-27 12:38:21 UTC (rev 90661)
@@ -27,6 +27,7 @@
 import java.util.Map;
 
 import org.jboss.beans.metadata.plugins.AbstractPropertyMetaData;
+import org.jboss.beans.metadata.spi.PropertyMetaData;
 import org.jboss.beans.metadata.spi.ValueMetaData;
 import org.jboss.system.metadata.ServiceAttributeMetaData;
 import org.jboss.system.metadata.ServiceValueMetaData;
@@ -36,7 +37,7 @@
  * @author  <a href="flavia.rainone at jboss.com">Flavia Rainone</a>
  * @version $Revision$
  */
-class AttributeMetaDataConverter extends AbstractMetaDataConverter<ServiceAttributeMetaData, AbstractPropertyMetaData>
+class AttributeMetaDataConverter extends AbstractMetaDataConverter<ServiceAttributeMetaData, PropertyMetaData>
 {
    Map<Class<?>, AttributeValueMetaDataConverter<?, ?>> valueConverters;
    private ValueMetaDataConverter defaultValueConverter = new ValueMetaDataConverter(); 
@@ -59,9 +60,19 @@
       valueConverter = new TextValueMetaDataConverter();
       valueConverters.put(valueConverter.getClass(), valueConverter);
     }
-   
-   public AbstractPropertyMetaData toMCMetaData(ServiceAttributeMetaData attribute, Collection<String> unhandledAttributes)
+
+   public Class<ServiceAttributeMetaData> input()
    {
+      return ServiceAttributeMetaData.class;
+   }
+
+   public Class<PropertyMetaData> output()
+   {
+      return PropertyMetaData.class;
+   }
+
+   public PropertyMetaData toMCMetaData(ServiceAttributeMetaData attribute, Collection<String> unhandledAttributes)
+   {
       ServiceValueMetaData serviceValue = attribute.getValue();
       AttributeValueMetaDataConverter<?, ?> valueConverter = valueConverters.get(serviceValue.getChildren());
       if (valueConverter == null)
@@ -78,7 +89,7 @@
       return "property";
    }
 
-   public String toXML(AbstractPropertyMetaData beanMetaData)
+   public String toXML(PropertyMetaData beanMetaData)
    {
       String start = startTag(Collections.singletonMap("name", beanMetaData.getName()));
       AttributeValueMetaDataConverter converter = null; // TODO

Modified: projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/AttributeValueMetaDataConverter.java
===================================================================
--- projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/AttributeValueMetaDataConverter.java	2009-06-26 22:07:20 UTC (rev 90660)
+++ projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/AttributeValueMetaDataConverter.java	2009-06-27 12:38:21 UTC (rev 90661)
@@ -33,8 +33,6 @@
  */
 abstract class AttributeValueMetaDataConverter<V extends ServiceValueMetaData, B extends ValueMetaData> extends AbstractMetaDataConverter<V, B>
 {
-   public abstract Class<V> getCompatibleClass();
-
    /**
     * @param serviceValue
     * @param unhandledAttributes

Copied: projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/BeanMetaData2XML.java (from rev 90629, projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/MetaDataConverter.java)
===================================================================
--- projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/BeanMetaData2XML.java	                        (rev 0)
+++ projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/BeanMetaData2XML.java	2009-06-27 12:38:21 UTC (rev 90661)
@@ -0,0 +1,32 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.mc.tools.jmx.convert;
+
+/**
+ * Converts BeanMetaData to XML.
+ *
+ * @author  <a href="flavia.rainone at jboss.com">Flavia Rainone</a>
+ */
+interface BeanMetaData2XML<B>
+{
+   String toXML(B beanMetaData);
+}
\ No newline at end of file

Modified: projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/ConstructorMetaDataConverter.java
===================================================================
--- projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/ConstructorMetaDataConverter.java	2009-06-26 22:07:20 UTC (rev 90660)
+++ projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/ConstructorMetaDataConverter.java	2009-06-27 12:38:21 UTC (rev 90661)
@@ -28,6 +28,7 @@
 import org.jboss.beans.metadata.plugins.AbstractConstructorMetaData;
 import org.jboss.beans.metadata.plugins.AbstractParameterMetaData;
 import org.jboss.beans.metadata.plugins.AbstractValueMetaData;
+import org.jboss.beans.metadata.spi.ConstructorMetaData;
 import org.jboss.beans.metadata.spi.ParameterMetaData;
 import org.jboss.system.ConfigurationException;
 import org.jboss.system.metadata.ServiceConstructorMetaData;
@@ -36,10 +37,20 @@
  * @author  <a href="flavia.rainone at jboss.com">Flavia Rainone</a>
  * @version $Revision$
  */
-class ConstructorMetaDataConverter extends AbstractMetaDataConverter<ServiceConstructorMetaData, AbstractConstructorMetaData>
+class ConstructorMetaDataConverter extends AbstractMetaDataConverter<ServiceConstructorMetaData, ConstructorMetaData>
 {
-   public AbstractConstructorMetaData toMCMetaData(ServiceConstructorMetaData constructor, Collection<String> unhandled)
+   public Class<ServiceConstructorMetaData> input()
    {
+      return ServiceConstructorMetaData.class;
+   }
+
+   public Class<ConstructorMetaData> output()
+   {
+      return ConstructorMetaData.class;
+   }
+
+   public ConstructorMetaData toMCMetaData(ServiceConstructorMetaData constructor, Collection<String> unhandled)
+   {
       String[] parameters = constructor.getParams();
       String[] signature;
       try
@@ -72,7 +83,7 @@
       return "constructor";
    }
 
-   public String toXML(AbstractConstructorMetaData beanMetaData)
+   public String toXML(ConstructorMetaData beanMetaData)
    {
       List<ParameterMetaData> params = beanMetaData.getParameters();
       if (params == null || params.isEmpty())

Added: projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/ConverterFactory.java
===================================================================
--- projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/ConverterFactory.java	                        (rev 0)
+++ projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/ConverterFactory.java	2009-06-27 12:38:21 UTC (rev 90661)
@@ -0,0 +1,130 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.mc.tools.jmx.convert;
+
+import java.util.Map;
+import java.util.HashMap;
+
+/**
+ * @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
+ */
+public final class ConverterFactory
+{
+   private static ConverterFactory instance = new ConverterFactory();
+   private Map<Class<?>, MetaDataConverter> converters = new HashMap<Class<?>, MetaDataConverter>();
+   private Map<Class<?>, BeanMetaData2XML> xmls = new HashMap<Class<?>, BeanMetaData2XML>();
+
+   public static ConverterFactory getInstance()
+   {
+      return instance;
+   }
+
+   @SuppressWarnings("unchecked")
+   public <S> MetaDataConverter<S, ?> getConverter(S value)
+   {
+      if (value == null)
+         return null;
+
+      Class<?> input = value.getClass();
+      MetaDataConverter<S, ?> converter = converters.get(input);
+      if (converter != null)
+         return converter;
+
+      for (Map.Entry<Class<?>, MetaDataConverter> entry : converters.entrySet())
+      {
+         if (entry.getKey().isInstance(value))
+         {
+            return entry.getValue();
+         }
+      }
+      throw new IllegalArgumentException("No such converter for value: " + value);
+   }
+
+   @SuppressWarnings("unchecked")
+   public <B> BeanMetaData2XML<B> getXMLTransfomer(B value)
+   {
+      if (value == null)
+         return null;
+
+      Class<?> output = value.getClass();
+      BeanMetaData2XML<B> transformer = xmls.get(output);
+      if (transformer != null)
+         return transformer;
+
+      for (Map.Entry<Class<?>, BeanMetaData2XML> entry : xmls.entrySet())
+      {
+         if (entry.getKey().isInstance(value))
+         {
+            return entry.getValue();
+         }
+      }
+      throw new IllegalArgumentException("No such transformer for value: " + value);
+   }
+
+   public <S, B> B convert(S value, Class<B> expectedType)
+   {
+      if (value == null)
+         return null;
+      if (expectedType == null)
+         throw new IllegalArgumentException("Null expected type");
+
+      MetaDataConverter<S, ?> converter = getConverter(value);
+      Object result = converter.toMCMetaData(value, null);
+      if (expectedType.isInstance(result) == false)
+         throw new IllegalArgumentException("Wrong result type: " + result + ", expected: " + expectedType);
+
+      return expectedType.cast(result);
+   }
+
+   @SuppressWarnings("unchecked")
+   public String transform(Object value)
+   {
+      BeanMetaData2XML transfomer = getXMLTransfomer(value);
+      return transfomer.toXML(value);
+   }
+
+   public void registerConverter(MetaDataConverter converter)
+   {
+      if (converter == null)
+         return;
+
+      Class<?> input = converter.input();
+      Class<?> output = converter.output();
+      if (input != null)
+         converters.put(input, converter);
+      if (output != null)
+         xmls.put(output, converter);
+   }
+
+   public void unregisterConverter(MetaDataConverter converter)
+   {
+      if (converter == null)
+         return;
+
+      Class<?> input = converter.input();
+      Class<?> output = converter.output();
+      if (input != null)
+         converters.remove(input);
+      if (output != null)
+         xmls.remove(output);
+   }
+}

Modified: projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/DependencyMetaDataConverter.java
===================================================================
--- projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/DependencyMetaDataConverter.java	2009-06-26 22:07:20 UTC (rev 90660)
+++ projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/DependencyMetaDataConverter.java	2009-06-27 12:38:21 UTC (rev 90661)
@@ -24,6 +24,7 @@
 import java.util.Collection;
 
 import org.jboss.beans.metadata.plugins.AbstractDependencyMetaData;
+import org.jboss.beans.metadata.spi.DependencyMetaData;
 import org.jboss.system.metadata.ServiceDependencyMetaData;
 
 /**
@@ -31,10 +32,20 @@
  * @version $Revision$
  *
  */
-class DependencyMetaDataConverter extends AbstractMetaDataConverter<ServiceDependencyMetaData, AbstractDependencyMetaData>
+class DependencyMetaDataConverter extends AbstractMetaDataConverter<ServiceDependencyMetaData, DependencyMetaData>
 {
-   public AbstractDependencyMetaData toMCMetaData(ServiceDependencyMetaData valueMetaData, Collection<String> unhandledAttributes)
+   public Class<ServiceDependencyMetaData> input()
    {
+      return ServiceDependencyMetaData.class;
+   }
+
+   public Class<DependencyMetaData> output()
+   {
+      return DependencyMetaData.class;
+   }
+
+   public DependencyMetaData toMCMetaData(ServiceDependencyMetaData valueMetaData, Collection<String> unhandledAttributes)
+   {
       String dependencyName = NAME_TRANSLATOR.translate(valueMetaData.getIDependOn());
       return new AbstractDependencyMetaData(dependencyName); 
    }
@@ -44,7 +55,7 @@
       return "depends";
    }
 
-   public String toXML(AbstractDependencyMetaData beanMetaData)
+   public String toXML(DependencyMetaData beanMetaData)
    {
       return simpleElement(beanMetaData.getDependency());
    }

Modified: projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/DependencyValueMetaDataConverter.java
===================================================================
--- projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/DependencyValueMetaDataConverter.java	2009-06-26 22:07:20 UTC (rev 90660)
+++ projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/DependencyValueMetaDataConverter.java	2009-06-27 12:38:21 UTC (rev 90661)
@@ -33,14 +33,18 @@
  */
 class DependencyValueMetaDataConverter extends AttributeValueMetaDataConverter<ServiceDependencyValueMetaData, AbstractInjectionValueMetaData>
 {
-   public Class<ServiceDependencyValueMetaData> getCompatibleClass()
+   public Class<ServiceDependencyValueMetaData> input()
    {
       return ServiceDependencyValueMetaData.class;
    }
-   
-   public AbstractInjectionValueMetaData toMCMetaData(ServiceDependencyValueMetaData valueMetaData, Collection<String> unhandledAttributes)
+
+   public Class<AbstractInjectionValueMetaData> output()
    {
-      ServiceDependencyValueMetaData value = (ServiceDependencyValueMetaData) valueMetaData;
+      return AbstractInjectionValueMetaData.class;
+   }
+
+   public AbstractInjectionValueMetaData toMCMetaData(ServiceDependencyValueMetaData value, Collection<String> unhandledAttributes)
+   {
       if (value.getProxyType() != null)
       {
          // TODO

Modified: projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/ElementValueMetaDataConverter.java
===================================================================
--- projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/ElementValueMetaDataConverter.java	2009-06-26 22:07:20 UTC (rev 90660)
+++ projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/ElementValueMetaDataConverter.java	2009-06-27 12:38:21 UTC (rev 90661)
@@ -32,11 +32,16 @@
  */
 class ElementValueMetaDataConverter<B extends ValueMetaData> extends AttributeValueMetaDataConverter<ServiceElementValueMetaData, B>
 {
-   public Class<ServiceElementValueMetaData> getCompatibleClass()
+   public Class<ServiceElementValueMetaData> input()
    {
       return ServiceElementValueMetaData.class;
    }
-   
+
+   public Class<B> output()
+   {
+      return null;  // TODO - real output?
+   }
+
    public B toMCMetaData(ServiceElementValueMetaData valueMetaData, Collection<String> unhandledAttributes)
    {
       //ServiceElementValueMetaData

Modified: projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/InjectionValueMetaDataConverter.java
===================================================================
--- projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/InjectionValueMetaDataConverter.java	2009-06-26 22:07:20 UTC (rev 90660)
+++ projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/InjectionValueMetaDataConverter.java	2009-06-27 12:38:21 UTC (rev 90661)
@@ -35,14 +35,18 @@
  */
 class InjectionValueMetaDataConverter extends AttributeValueMetaDataConverter<ServiceInjectionValueMetaData, AbstractInjectionValueMetaData>
 {
-   public Class<ServiceInjectionValueMetaData> getCompatibleClass()
+   public Class<ServiceInjectionValueMetaData> input()
    {
       return ServiceInjectionValueMetaData.class;
    }
-   
-   public AbstractInjectionValueMetaData toMCMetaData(ServiceInjectionValueMetaData valueMetaData, Collection<String> unhandledAttributes)
+
+   public Class<AbstractInjectionValueMetaData> output()
    {
-      ServiceInjectionValueMetaData value = (ServiceInjectionValueMetaData) valueMetaData;
+      return AbstractInjectionValueMetaData.class;
+   }
+
+   public AbstractInjectionValueMetaData toMCMetaData(ServiceInjectionValueMetaData value, Collection<String> unhandledAttributes)
+   {
       String dependency = (String) value.getDependency();
       String property = value.getProperty();
       return new AbstractInjectionValueMetaData(NAME_TRANSLATOR.translate(dependency), property);

Modified: projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/JBXBValueMetaDataConverter.java
===================================================================
--- projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/JBXBValueMetaDataConverter.java	2009-06-26 22:07:20 UTC (rev 90660)
+++ projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/JBXBValueMetaDataConverter.java	2009-06-27 12:38:21 UTC (rev 90661)
@@ -34,11 +34,16 @@
  */
 class JBXBValueMetaDataConverter<B extends ValueMetaData> extends AttributeValueMetaDataConverter<ServiceJBXBValueMetaData, B>
 {
-   public Class<ServiceJBXBValueMetaData> getCompatibleClass()
+   public Class<ServiceJBXBValueMetaData> input()
    {
       return ServiceJBXBValueMetaData.class;
    }
-   
+
+   public Class<B> output()
+   {
+      return null; // TODO - real output?
+   }
+
    public B toMCMetaData(ServiceJBXBValueMetaData valueMetaData, Collection<String> unhandledAttributes)
    {
       //ServiceJBXBValueMetaData

Modified: projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/JavaBeanValueMetaDateConverter.java
===================================================================
--- projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/JavaBeanValueMetaDateConverter.java	2009-06-26 22:07:20 UTC (rev 90660)
+++ projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/JavaBeanValueMetaDateConverter.java	2009-06-27 12:38:21 UTC (rev 90661)
@@ -26,6 +26,7 @@
 
 import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
 import org.jboss.beans.metadata.plugins.AbstractPropertyMetaData;
+import org.jboss.beans.metadata.spi.BeanMetaData;
 import org.jboss.system.metadata.ServiceJavaBeanValueMetaData;
 import org.jboss.system.metadata.ServiceMetaDataParser;
 import org.w3c.dom.Element;
@@ -37,15 +38,20 @@
  * @version $Revision$
  *
  */
-class JavaBeanValueMetaDataConverter extends AttributeValueMetaDataConverter<ServiceJavaBeanValueMetaData, AbstractBeanMetaData>
+class JavaBeanValueMetaDataConverter extends AttributeValueMetaDataConverter<ServiceJavaBeanValueMetaData, BeanMetaData>
 {
-   public Class<ServiceJavaBeanValueMetaData> getCompatibleClass()
+   public Class<ServiceJavaBeanValueMetaData> input()
    {
       return ServiceJavaBeanValueMetaData.class;
    }
-   
-   public AbstractBeanMetaData toMCMetaData(ServiceJavaBeanValueMetaData beanMetaData, Collection<String> unhandledAttributes)
+
+   public Class<BeanMetaData> output()
    {
+      return BeanMetaData.class;
+   }
+
+   public BeanMetaData toMCMetaData(ServiceJavaBeanValueMetaData beanMetaData, Collection<String> unhandledAttributes)
+   {
       Element element = beanMetaData.getElement();
       AbstractBeanMetaData result = new AbstractBeanMetaData(element.getAttribute("attributeClass"));
       NodeList properties = element.getElementsByTagName("property");
@@ -70,7 +76,7 @@
       return "bean";
    }
 
-   public String toXML(AbstractBeanMetaData beanMetaData)
+   public String toXML(BeanMetaData beanMetaData)
    {
       Map<String, ?> attributes = null; // TODO; name, class
       String start = startTag(attributes);

Modified: projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/MetaDataConverter.java
===================================================================
--- projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/MetaDataConverter.java	2009-06-26 22:07:20 UTC (rev 90660)
+++ projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/MetaDataConverter.java	2009-06-27 12:38:21 UTC (rev 90661)
@@ -32,11 +32,13 @@
  * @author  <a href="flavia.rainone at jboss.com">Flavia Rainone</a>
  * @version $Revision$
  */
-interface MetaDataConverter<S,B>
+interface MetaDataConverter<S,B> extends BeanMetaData2XML<B>
 {
    BeanNameService NAME_TRANSLATOR = new InputNameService();
-   
+
+   Class<S> input();
+
+   Class<B> output();
+
    B toMCMetaData(S serviceMetaData, Collection<String> unhandledAtributes);
-
-   String toXML(B beanMetaData);
 }
\ No newline at end of file

Modified: projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/ServiceMetaDataConverter.java
===================================================================
--- projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/ServiceMetaDataConverter.java	2009-06-26 22:07:20 UTC (rev 90660)
+++ projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/ServiceMetaDataConverter.java	2009-06-27 12:38:21 UTC (rev 90661)
@@ -59,7 +59,17 @@
       this.aliasConverter = new AliasMetaDataConverter();
       this.annotationConverter = new AnnotationMetaDataConverter();
    }
-   
+
+   public Class<ServiceMetaData> input()
+   {
+      return ServiceMetaData.class;
+   }
+
+   public Class<BeanMetaData> output()
+   {
+      return BeanMetaData.class;
+   }
+
    /**
     * Converts jmxMetaData (old MicroKernel) into BeanMetaData (Microcontainer)
     * 

Modified: projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/TextValueMetaDataConverter.java
===================================================================
--- projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/TextValueMetaDataConverter.java	2009-06-26 22:07:20 UTC (rev 90660)
+++ projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/TextValueMetaDataConverter.java	2009-06-27 12:38:21 UTC (rev 90661)
@@ -34,11 +34,16 @@
  */
 class TextValueMetaDataConverter extends AttributeValueMetaDataConverter<ServiceTextValueMetaData, StringValueMetaData>
 {
-   public Class<ServiceTextValueMetaData> getCompatibleClass()
+   public Class<ServiceTextValueMetaData> input()
    {
       return ServiceTextValueMetaData.class;
    }
-   
+
+   public Class<StringValueMetaData> output()
+   {
+      return StringValueMetaData.class;
+   }
+
    public StringValueMetaData toMCMetaData(ServiceTextValueMetaData valueMetaData, Collection<String> unhandledAttributes)
    {
       return new StringValueMetaData(valueMetaData.getText());

Modified: projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/ValueFactoryMetaDataConverter.java
===================================================================
--- projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/ValueFactoryMetaDataConverter.java	2009-06-26 22:07:20 UTC (rev 90660)
+++ projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/ValueFactoryMetaDataConverter.java	2009-06-27 12:38:21 UTC (rev 90661)
@@ -40,11 +40,16 @@
  */
 class ValueFactoryMetaDataConverter extends AttributeValueMetaDataConverter<ServiceValueFactoryValueMetaData, AbstractValueFactoryMetaData>
 {
-   public Class<ServiceValueFactoryValueMetaData> getCompatibleClass()
+   public Class<ServiceValueFactoryValueMetaData> input()
    {
       return ServiceValueFactoryValueMetaData.class;
    }
-   
+
+   public Class<AbstractValueFactoryMetaData> output()
+   {
+      return AbstractValueFactoryMetaData.class;
+   }
+
    public AbstractValueFactoryMetaData toMCMetaData(ServiceValueFactoryValueMetaData value, Collection<String> unhandledAttributes)
    {
       String dependency = NAME_TRANSLATOR.translate((String) value.getDependency());

Modified: projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/ValueMetaDataConverter.java
===================================================================
--- projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/ValueMetaDataConverter.java	2009-06-26 22:07:20 UTC (rev 90660)
+++ projects/mc-tools/smd2bmd/trunk/src/main/java/org/jboss/mc/tools/jmx/convert/ValueMetaDataConverter.java	2009-06-27 12:38:21 UTC (rev 90661)
@@ -34,11 +34,16 @@
  */
 public class ValueMetaDataConverter extends AttributeValueMetaDataConverter<ServiceValueMetaData, ValueMetaData>
 {
-   public Class<ServiceValueMetaData> getCompatibleClass()
+   public Class<ServiceValueMetaData> input()
    {
       return ServiceValueMetaData.class;
    }
-   
+
+   public Class<ValueMetaData> output()
+   {
+      return null;  // TODO - real output?
+   }
+
    public ValueMetaData toMCMetaData(ServiceValueMetaData valueMetaData, Collection<String> unhandledAttributes)
    {
       throw new RuntimeException("Unexpected value type: " + (valueMetaData == null? valueMetaData: valueMetaData.getClass().getName()));




More information about the jboss-cvs-commits mailing list