Exemplo n.º 1
0
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: public static org.camunda.bpm.engine.impl.variable.serializer.TypedValueSerializer<?> getFallbackSerializer(String serializerName)
        public static TypedValueSerializer <object> getFallbackSerializer(string serializerName)
        {
            if (Context.ProcessEngineConfiguration != null)
            {
                VariableSerializerFactory fallbackSerializerFactory = Context.ProcessEngineConfiguration.FallbackSerializerFactory;
                if (fallbackSerializerFactory != null)
                {
                    return(fallbackSerializerFactory.getSerializer(serializerName));
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                throw LOG.serializerOutOfContextException();
            }
        }
Exemplo n.º 2
0
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: public TypedValueSerializer<?> findSerializerForValue(org.camunda.bpm.engine.variable.value.TypedValue value, VariableSerializerFactory fallBackSerializerFactory)
        public virtual TypedValueSerializer <object> findSerializerForValue(TypedValue value, VariableSerializerFactory fallBackSerializerFactory)
        {
            string defaultSerializationFormat = Context.ProcessEngineConfiguration.DefaultSerializationFormat;

//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: java.util.List<TypedValueSerializer<?>> matchedSerializers = new java.util.ArrayList<TypedValueSerializer<?>>();
            IList <TypedValueSerializer <object> > matchedSerializers = new List <TypedValueSerializer <object> >();

            ValueType type = value.Type;

            if (type != null && type.Abstract)
            {
                throw new ProcessEngineException("Cannot serialize value of abstract type " + type.Name);
            }

//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: for (TypedValueSerializer<?> serializer : serializerList)
            foreach (TypedValueSerializer <object> serializer in serializerList)
            {
                if (type == null || serializer.Type.Equals(type))
                {
                    // if type is null => ask handler whether it can handle the value
                    // OR if types match, this handler can handle values of this type
                    //    => BUT we still need to ask as the handler may not be able to handle ALL values of this type.

                    if (serializer.canHandle(value))
                    {
                        matchedSerializers.Add(serializer);
                        if (serializer.Type.PrimitiveValueType)
                        {
                            break;
                        }
                    }
                }
            }

            if (matchedSerializers.Count == 0)
            {
                if (fallBackSerializerFactory != null)
                {
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: TypedValueSerializer<?> serializer = fallBackSerializerFactory.getSerializer(value);
                    TypedValueSerializer <object> serializer = fallBackSerializerFactory.getSerializer(value);
                    if (serializer != null)
                    {
                        return(serializer);
                    }
                }

                throw new ProcessEngineException("Cannot find serializer for value '" + value + "'.");
            }
            else if (matchedSerializers.Count == 1)
            {
                return(matchedSerializers[0]);
            }
            else
            {
                // ambiguous match, use default serializer
                if (!string.ReferenceEquals(defaultSerializationFormat, null))
                {
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: for (TypedValueSerializer<?> typedValueSerializer : matchedSerializers)
                    foreach (TypedValueSerializer <object> typedValueSerializer in matchedSerializers)
                    {
                        if (defaultSerializationFormat.Equals(typedValueSerializer.SerializationDataformat))
                        {
                            return(typedValueSerializer);
                        }
                    }
                }
                // no default serialization dataformat defined or default dataformat cannot serialize this value => use first serializer
                return(matchedSerializers[0]);
            }
        }