/// <inheritdoc />
        public override IASTargetMapper GetASTargetMapper(ASTargetMappingDescriptor descriptor)
        {
            ActionScriptClassMapping classMapping = mappingTable.GetClassMappingByType(descriptor.SourceNativeType);
            if (classMapping != null)
            {
                return new ObjectMapper(classMapping);
            }

            return null;
        }
        /// <summary>
        /// Gets an ActionScript target mapper that satisfies the specified descriptor.
        /// </summary>
        /// <param name="descriptor">The target mapping descriptor</param>
        /// <returns>The ActionScript target mapper, or null if no compatible mapper can be obtained by any registered factory</returns>
        public IASTargetMapper GetASTargetMapper(ASTargetMappingDescriptor descriptor)
        {
            lock (syncRoot)
            {
                IASTargetMapper mapper;
                if (!targetMapperCache.TryGetValue(descriptor, out mapper))
                {
                    foreach (IASMapperFactory factory in mapperFactories)
                    {
                        mapper = factory.GetASTargetMapper(descriptor);
                        if (mapper != null)
                            break;
                    }

                    targetMapperCache.Add(descriptor, mapper);
                }

                return mapper;
            }
        }
 /// <summary>
 /// Gets an ActionScript target mapper that satisfies the specified descriptor.
 /// </summary>
 /// <param name="descriptor">The target mapping descriptor</param>
 /// <returns>The ActionScript target mapper, or null if no compatible mapper can be obtained by this factory</returns>
 public virtual IASTargetMapper GetASTargetMapper(ASTargetMappingDescriptor descriptor)
 {
     return null;
 }
        /// <inheritdoc />
        public override IASTargetMapper GetASTargetMapper(ASTargetMappingDescriptor descriptor)
        {
            foreach (PrimitiveMapper mapper in mappers)
                if (mapper.SupportsTargetMapping(descriptor))
                    return mapper;

            return null;
        }
 public override bool SupportsTargetMapping(ASTargetMappingDescriptor descriptor)
 {
     return descriptor.SourceNativeType.IsEnum;
 }
            public virtual bool SupportsTargetMapping(ASTargetMappingDescriptor descriptor)
            {
                if (type.IsAssignableFrom(descriptor.SourceNativeType))
                    return true;

                return false;
            }