com.univocity.parsers.fixed
Class FixedWidthFields

java.lang.Object
  extended by com.univocity.parsers.fixed.FixedWidthFields
Direct Known Subclasses:
FixedWidthFieldLengths

public class FixedWidthFields
extends Object

This class provides the name, length, alignment and padding of each field in a fixed-width record.

Author:
uniVocity Software Pty Ltd - parsers@univocity.com

Constructor Summary
FixedWidthFields(int... fieldLengths)
          Creates a new instance initialized with the lengths of all fields in a fixed-width record.
FixedWidthFields(LinkedHashMap<String,Integer> fields)
          Defines a sequence of field names used to refer to columns in the input/output text of an entity, along with their lengths.
FixedWidthFields(String[] headers, int[] lengths)
          Defines a sequence of field names used to refer to columns in the input/output text of an entity, along with their lengths.
 
Method Summary
 FixedWidthFields addField(int length)
          Adds the length of the next field in a fixed-width record.
 FixedWidthFields addField(int length, char padding)
          Adds the length of the next field in a fixed-width record.
 FixedWidthFields addField(int length, FieldAlignment alignment)
          Adds the length of the next field in a fixed-width record.
 FixedWidthFields addField(int length, FieldAlignment alignment, char padding)
          Adds the length of the next field in a fixed-width record.
 FixedWidthFields addField(String name, int length)
          Adds the length of the next field in a fixed-width record.
 FixedWidthFields addField(String name, int length, char padding)
          Adds the length of the next field in a fixed-width record.
 FixedWidthFields addField(String name, int length, FieldAlignment alignment)
          Adds the length of the next field in a fixed-width record.
 FixedWidthFields addField(String name, int length, FieldAlignment alignment, char padding)
          Adds the length of the next field in a fixed-width record.
 FieldAlignment getAlignment(int position)
          Returns the alignment of a given field.
 FieldAlignment getAlignment(String fieldName)
          Returns the alignment of a given field.
 FieldAlignment[] getFieldAlignments()
          Returns a copy of the sequence of alignment settings to apply over each field in the fixed-width record.
 int[] getFieldLengths()
          Returns a copy of the sequence of field lengths of a fixed-width record
 String[] getFieldNames()
          Returns the name of each field in a fixed-width record, if any
 char[] getFieldPaddings()
          Returns a copy of the sequence of padding characters to apply over each field in the fixed-width record.
 int getFieldsPerRecord()
          Returns the number of fields in a fixed-width record
 int indexOf(String fieldName)
          Returns the index of a field name.
 void setAlignment(FieldAlignment alignment, int... positions)
          Applies alignment to a given list of fields
 void setAlignment(FieldAlignment alignment, String... names)
          Applies alignment to a given list of fields
 void setFieldLength(int position, int newLength)
          Modifies the length of a given field
 void setFieldLength(String name, int newLength)
          Modifies the length of a given field
 void setPadding(char padding, int... positions)
          Applies a custom padding character to a given list of fields
 void setPadding(char padding, String... names)
          Applies a custom padding character to a given list of fields
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FixedWidthFields

public FixedWidthFields(LinkedHashMap<String,Integer> fields)
Defines a sequence of field names used to refer to columns in the input/output text of an entity, along with their lengths. The field names defined will be used as headers, having the same effect of a call to CommonSettings.setHeaders(String...).

Parameters:
fields - a LinkedHashMap containing the sequence of fields to be associated with each column in the input/output, with their respective length.

FixedWidthFields

public FixedWidthFields(String[] headers,
                        int[] lengths)
Defines a sequence of field names used to refer to columns in the input/output text of an entity, along with their lengths. The field names defined will be used as headers, having the same effect of a call to CommonSettings.setHeaders(String...).

Parameters:
headers - the sequence of fields to be associated with each column in the input/output
lengths - the sequence of lengths to be associated with each given header. The size of this array must match the number of given headers.

FixedWidthFields

public FixedWidthFields(int... fieldLengths)
Creates a new instance initialized with the lengths of all fields in a fixed-width record.

Parameters:
fieldLengths - The number lengths of all fields in a fixed-width record. All lengths must be greater than 0.
Method Detail

addField

public FixedWidthFields addField(int length)
Adds the length of the next field in a fixed-width record. This method can be chained like this: addField(5).addField(6)...

Parameters:
length - the length of the next field. It must be greater than 0.
Returns:
the FixedWidthFields instance itself for chaining.

addField

public FixedWidthFields addField(int length,
                                 FieldAlignment alignment)
Adds the length of the next field in a fixed-width record. This method can be chained like this: addField(5).addField(6)...

Parameters:
length - the length of the next field. It must be greater than 0.
alignment - the alignment of the field
Returns:
the FixedWidthFields instance itself for chaining.

addField

public FixedWidthFields addField(String name,
                                 int length)
Adds the length of the next field in a fixed-width record. This method can be chained like this: addField("field_1", 5).addField("field_2", 6)...

Parameters:
name - the name of the next field. It is not validated.
length - the length of the next field. It must be greater than 0.
Returns:
the FixedWidthFields instance itself for chaining.

addField

public FixedWidthFields addField(String name,
                                 int length,
                                 FieldAlignment alignment)
Adds the length of the next field in a fixed-width record. This method can be chained like this: addField("field_1", 5).addField("field_2", 6)...

Parameters:
name - the name of the next field. It is not validated.
length - the length of the next field. It must be greater than 0.
alignment - the alignment of the field
Returns:
the FixedWidthFields instance itself for chaining.

addField

public FixedWidthFields addField(int length,
                                 char padding)
Adds the length of the next field in a fixed-width record. This method can be chained like this: addField(5).addField(6)...

Parameters:
length - the length of the next field. It must be greater than 0.
padding - the representation of unused space in this field
Returns:
the FixedWidthFields instance itself for chaining.

addField

public FixedWidthFields addField(int length,
                                 FieldAlignment alignment,
                                 char padding)
Adds the length of the next field in a fixed-width record. This method can be chained like this: addField(5).addField(6)...

Parameters:
length - the length of the next field. It must be greater than 0.
alignment - the alignment of the field
padding - the representation of unused space in this field
Returns:
the FixedWidthFields instance itself for chaining.

addField

public FixedWidthFields addField(String name,
                                 int length,
                                 char padding)
Adds the length of the next field in a fixed-width record. This method can be chained like this: addField("field_1", 5).addField("field_2", 6)...

Parameters:
name - the name of the next field. It is not validated.
length - the length of the next field. It must be greater than 0.
padding - the representation of unused space in this field
Returns:
the FixedWidthFields instance itself for chaining.

addField

public FixedWidthFields addField(String name,
                                 int length,
                                 FieldAlignment alignment,
                                 char padding)
Adds the length of the next field in a fixed-width record. This method can be chained like this: addField("field_1", 5).addField("field_2", 6)...

Parameters:
name - the name of the next field. It is not validated.
length - the length of the next field. It must be greater than 0.
alignment - the alignment of the field
padding - the representation of unused space in this field
Returns:
the FixedWidthFields instance itself for chaining.

getFieldsPerRecord

public int getFieldsPerRecord()
Returns the number of fields in a fixed-width record

Returns:
the number of fields in a fixed-width record

getFieldNames

public String[] getFieldNames()
Returns the name of each field in a fixed-width record, if any

Returns:
the name of each field in a fixed-width record, or null if no name has been defined.

getFieldLengths

public int[] getFieldLengths()
Returns a copy of the sequence of field lengths of a fixed-width record

Returns:
a copy of the sequence of field lengths of a fixed-width record

setFieldLength

public void setFieldLength(String name,
                           int newLength)
Modifies the length of a given field

Parameters:
name - the name of the field whose length must be altered
newLength - the new length of the given field

setFieldLength

public void setFieldLength(int position,
                           int newLength)
Modifies the length of a given field

Parameters:
position - the position of the field whose length must be altered
newLength - the new length of the given field

setAlignment

public void setAlignment(FieldAlignment alignment,
                         int... positions)
Applies alignment to a given list of fields

Parameters:
alignment - the alignment to apply
positions - the positions of the fields that should be aligned

setAlignment

public void setAlignment(FieldAlignment alignment,
                         String... names)
Applies alignment to a given list of fields

Parameters:
alignment - the alignment to apply
names - the names of the fields that should be aligned

indexOf

public int indexOf(String fieldName)
Returns the index of a field name. An IllegalArgumentException will be thrown if no names have been defined.

Parameters:
fieldName - the name of the field to be searched
Returns:
the index of the field, or -1 if it does not exist.

getAlignment

public FieldAlignment getAlignment(int position)
Returns the alignment of a given field.

Parameters:
position - the index of the field whose alignment will be returned
Returns:
the alignment of the field

getAlignment

public FieldAlignment getAlignment(String fieldName)
Returns the alignment of a given field. An IllegalArgumentException will be thrown if no names have been defined.

Parameters:
fieldName - the name of the field whose alignment will be returned
Returns:
the alignment of the given field

getFieldAlignments

public FieldAlignment[] getFieldAlignments()
Returns a copy of the sequence of alignment settings to apply over each field in the fixed-width record.

Returns:
the sequence of alignment settings to apply over each field in the fixed-width record.

getFieldPaddings

public char[] getFieldPaddings()
Returns a copy of the sequence of padding characters to apply over each field in the fixed-width record. The null character ('\0') is used to inform no padding has been explicitly set for a field, and that the default padding character defined in FixedWidthFormat.getPadding() should be used.

Returns:
the sequence of padding characters to apply over each field in the fixed-width record.

setPadding

public void setPadding(char padding,
                       int... positions)
Applies a custom padding character to a given list of fields

Parameters:
padding - the padding to apply
positions - the positions of the fields that should use the given padding character

setPadding

public void setPadding(char padding,
                       String... names)
Applies a custom padding character to a given list of fields

Parameters:
padding - the padding to apply
names - the names of the fields that should use the given padding character

toString

public String toString()
Overrides:
toString in class Object


Copyright © 2016 uniVocity Software Pty Ltd. All rights reserved.