private void CompleteComponentTypeDefinitionParams(DeployUnit component, TypeDefinition type, KevoreeFactory factory)
 {
     var lstOutputFields = _annotationHelper.filterFieldsByAttribute(component.GetType(), typeof(Param));
     foreach (FieldInfo fieldInfo in lstOutputFields)
     {
         DictionaryAttribute dicAtt = CompleteComponentTypeDefinitionParamField(type, factory, fieldInfo);
         type.getDictionaryType().addAttributes(dicAtt);
     }
 }
 /**
  * Defined a dictionnary attribute for a method or field annotated with a Param attribute
  */
 private static DictionaryAttribute CompleteComponentTypeDefinitionParam(TypeDefinition typeDef, KevoreeFactory factory, Type type, string name, Param paramAttribute)
 {
     DataType dataType = GetDatatypeByType(type);
     DictionaryAttribute dicAtt = factory.createDictionaryAttribute();
     if (typeDef.getDictionaryType() == null)
     {
         typeDef.setDictionaryType(factory.createDictionaryType());
     }
     dicAtt.setName(name);
     dicAtt.setDatatype(dataType);
     var opt = paramAttribute.Optional;
     var fragmentDependent = paramAttribute.FragmentDependent;
     var defaultValue = paramAttribute.DefaultValue;
     dicAtt.setOptional(opt ? Boolean.TRUE : Boolean.FALSE);
     dicAtt.setFragmentDependant(fragmentDependent ? Boolean.TRUE : Boolean.FALSE);
     dicAtt.setDefaultValue(defaultValue);
     return dicAtt;
 }