// Path: src/main/java/org/jrimum/texgit/type/Field.java
// public interface Field<G> extends TextStream, Cloneable{
// 
// 	public abstract String getName();
// 
// 	public abstract void setName(String name);
// 
// 	public abstract G getValue();
// 
// 	public abstract void setValue(G value);
// 
// 	public abstract Format getFormatter();
// 
// 	public abstract void setFormatter(Format formatter);
// 
// 	public abstract boolean isBlankAccepted();
// 
// 	public abstract void setBlankAccepted(boolean blankAccepted);
// 	
// 	public abstract Field<G> clone() throws CloneNotSupportedException;
// }


import static org.apache.commons.lang.StringUtils.isNotBlank;
import static org.jrimum.utilix.Objects.isNotNull;
import static org.jrimum.utilix.Objects.isNull;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import org.jrimum.texgit.type.Field;
import org.jrimum.utilix.Objects;
import static java.lang.String.format;
import static org.apache.commons.lang.StringUtils.EMPTY;

		} catch (CloneNotSupportedException e) {
			
			throw new UnsupportedOperationException(format("Quebra de contrato [%s] não suporta clonagem!",Objects.whenNull(ffID, "FixedField", ffID.getClass())), e);
		}
		
		getIdType().read(lineRecord.substring(getIdPosition(), getIdPosition() + getIdType().getFixedLength())); 

		return ffID;
	}
	
	public org.jrimum.texgit.type.FixedField<?> getField(String fieldName) {

		org.jrimum.texgit.type.FixedField<?> field = null;

		if (isNotBlank(fieldName))
			if (!getFields().isEmpty())
				for (FixedField<?> ff : this.getFields())
					if (ff.getName().equals(fieldName)) {
						field = ff;
						break;
					}

		return field;
	}

	public boolean isMyField(String idName){
		boolean is = false;
		
		if (isNotBlank(idName)) {
			if(!getFields().isEmpty())

// Path: src/main/java/org/jrimum/texgit/type/Field.java
// public interface Field<G> extends TextStream, Cloneable{
// 
// 	public abstract String getName();
// 
// 	public abstract void setName(String name);
// 
// 	public abstract G getValue();
// 
// 	public abstract void setValue(G value);
// 
// 	public abstract Format getFormatter();
// 
// 	public abstract void setFormatter(Format formatter);
// 
// 	public abstract boolean isBlankAccepted();
// 
// 	public abstract void setBlankAccepted(boolean blankAccepted);
// 	
// 	public abstract Field<G> clone() throws CloneNotSupportedException;
// }


// Path: src/main/java/org/jrimum/texgit/type/component/Record.java
import static org.apache.commons.lang.StringUtils.isNotBlank;
import static org.jrimum.utilix.Objects.isNotNull;
import static org.jrimum.utilix.Objects.isNull;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import org.jrimum.texgit.type.Field;
import org.jrimum.utilix.Objects;
import static java.lang.String.format;
import static org.apache.commons.lang.StringUtils.EMPTY;

		} catch (CloneNotSupportedException e) {
			
			throw new UnsupportedOperationException(format("Quebra de contrato [%s] não suporta clonagem!",Objects.whenNull(ffID, "FixedField", ffID.getClass())), e);
		}
		
		getIdType().read(lineRecord.substring(getIdPosition(), getIdPosition() + getIdType().getFixedLength())); 

		return ffID;
	}
	
	public org.jrimum.texgit.type.FixedField<?> getField(String fieldName) {

		org.jrimum.texgit.type.FixedField<?> field = null;

		if (isNotBlank(fieldName))
			if (!getFields().isEmpty())
				for (FixedField<?> ff : this.getFields())
					if (ff.getName().equals(fieldName)) {
						field = ff;
						break;
					}

		return field;
	}

	public boolean isMyField(String idName){
		boolean is = false;
		
		if (isNotBlank(idName)) {
			if(!getFields().isEmpty())

				for(org.jrimum.texgit.type.Field<?> f : getFields())
