package blue.stack.serializableParcelablegenerator.typeserializers; import blue.stack.serializableParcelablegenerator.typeserializers.serializers.UnknownTypeSerializer; import com.intellij.psi.PsiType; import java.util.Arrays; import java.util.List; public class ChainSerializerFactory implements TypeSerializerFactory { private final List<TypeSerializerFactory> factories; public ChainSerializerFactory(TypeSerializerFactory... factories) { this.factories = Arrays.asList(factories); } @Override public TypeSerializer getSerializer(PsiType psiType) { for (TypeSerializerFactory factory : factories) { TypeSerializer serializer = factory.getSerializer(psiType); if (serializer != null) { return serializer; } } return new UnknownTypeSerializer(psiType.getCanonicalText()); } }