// Path: copybook4java/src/main/java/com/nordea/oss/copybook/converters/TypeConverter.java
// public interface TypeConverter {
//     void initialize(TypeConverterConfig config);
//     void validate(Class<?> type, int size, int decimals);
//     TypeConverter copy(Class<?> type) throws IllegalAccessException, InstantiationException;
//     Object to(byte[] bytes, int offset, int length, int decimals, boolean removePadding);
//     byte[] from(Object value, int length, int decimals, boolean addPadding);
// }
// 
// Path: copybook4java/src/main/java/com/nordea/oss/copybook/serializers/CopyBookFieldSigningType.java
// public enum CopyBookFieldSigningType {
//     POSTFIX,
//     PREFIX,
//     LAST_BYTE_BIT8,
//     LAST_BYTE_EBCDIC_BIT5
// }


import com.nordea.oss.copybook.converters.TypeConverter;
import com.nordea.oss.copybook.serializers.CopyBookFieldSigningType;
import java.lang.annotation.*;
/*
 * Copyright (c) 2015. Troels Liebe Bentsen <tlb@nversion.dk>
 * Copyright (c) 2016. Nordea Bank AB
 * Licensed under the MIT license (LICENSE.txt)
 */

package com.nordea.oss.copybook.annotations;



@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.TYPE, ElementType.FIELD })
@Repeatable(CopyBookFieldFormats.class)
public @interface CopyBookFieldFormat {
// Path: copybook4java/src/main/java/com/nordea/oss/copybook/converters/TypeConverter.java
// public interface TypeConverter {
//     void initialize(TypeConverterConfig config);
//     void validate(Class<?> type, int size, int decimals);
//     TypeConverter copy(Class<?> type) throws IllegalAccessException, InstantiationException;
//     Object to(byte[] bytes, int offset, int length, int decimals, boolean removePadding);
//     byte[] from(Object value, int length, int decimals, boolean addPadding);
// }
// 
// Path: copybook4java/src/main/java/com/nordea/oss/copybook/serializers/CopyBookFieldSigningType.java
// public enum CopyBookFieldSigningType {
//     POSTFIX,
//     PREFIX,
//     LAST_BYTE_BIT8,
//     LAST_BYTE_EBCDIC_BIT5
// }


// Path: copybook4java/src/main/java/com/nordea/oss/copybook/annotations/CopyBookFieldFormat.java
import com.nordea.oss.copybook.converters.TypeConverter;
import com.nordea.oss.copybook.serializers.CopyBookFieldSigningType;
import java.lang.annotation.*;

/*
 * Copyright (c) 2015. Troels Liebe Bentsen <tlb@nversion.dk>
 * Copyright (c) 2016. Nordea Bank AB
 * Licensed under the MIT license (LICENSE.txt)
 */

package com.nordea.oss.copybook.annotations;



@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.TYPE, ElementType.FIELD })
@Repeatable(CopyBookFieldFormats.class)
public @interface CopyBookFieldFormat {
    Class<? extends TypeConverter> type();