All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.digitalid.utility.collections.list.ReadOnlyListConverter Maven / Gradle / Ivy

The newest version!
package net.digitalid.utility.collections.list;

import java.util.HashMap;
import java.util.Map;

import javax.annotation.Generated;
import javax.annotation.Nonnull;

import net.digitalid.utility.annotations.method.Pure;
import net.digitalid.utility.annotations.ownership.Capturable;
import net.digitalid.utility.annotations.ownership.NonCaptured;
import net.digitalid.utility.annotations.parameter.Modified;
import net.digitalid.utility.annotations.parameter.Unmodified;
import net.digitalid.utility.conversion.enumerations.Representation;
import net.digitalid.utility.conversion.exceptions.ConnectionException;
import net.digitalid.utility.conversion.exceptions.RecoveryException;
import net.digitalid.utility.conversion.interfaces.Converter;
import net.digitalid.utility.conversion.interfaces.Decoder;
import net.digitalid.utility.conversion.interfaces.Encoder;
import net.digitalid.utility.conversion.model.CustomAnnotation;
import net.digitalid.utility.conversion.model.CustomField;
import net.digitalid.utility.immutable.ImmutableList;
import net.digitalid.utility.immutable.ImmutableMap;

import static net.digitalid.utility.conversion.model.CustomType.BOOLEAN;

@SuppressWarnings("null")
@Generated(value = "net.digitalid.utility.processor.generator.JavaFileGenerator", date = "2017-03-26T11:54:22.159+0200")
public class ReadOnlyListConverter implements Converter {
    
    public static final @Nonnull ReadOnlyListConverter INSTANCE = new ReadOnlyListConverter();
    
    @Pure
    @Override
    public @Nonnull Class getType() {
        return ReadOnlyList.class;
    }
    
    @Pure
    @Override
    public @Nonnull String getTypeName() {
        return "ReadOnlyList";
    }
    
    @Pure
    @Override
    public @Nonnull String getTypePackage() {
        return "net.digitalid.utility.collections.list";
    }
    
    private static final @Nonnull ImmutableList fields;
    
    static {
        final @Nonnull Map frozenPure = new HashMap<>();
        
        fields = ImmutableList.withElements(CustomField.with(BOOLEAN, "frozen", ImmutableList.withElements(CustomAnnotation.with(Pure.class, ImmutableMap.withMappingsOf(frozenPure)))));
    }
    
    @Pure
    @Override
    public @Nonnull ImmutableList< CustomField> getFields(@Nonnull Representation representation) {
        return fields;
    }
    
    @Pure
    @Override
    public  void convert(@NonCaptured @Unmodified @Nonnull ReadOnlyList readOnlyList, @Nonnull @NonCaptured @Modified Encoder encoder) throws EXCEPTION {
        encoder.encodeBoolean(readOnlyList.isFrozen());
    }
    
    @Pure
    @Override
    public @Capturable @Nonnull  ReadOnlyList recover(@Nonnull @NonCaptured Decoder decoder, Void none) throws EXCEPTION, RecoveryException {
        final boolean frozen = decoder.decodeBoolean();
        return ReadOnlyList.with(frozen);
    }
    
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy