blob: c3fd90cf763e3244ba7d66811182521aaa79daaf [file] [log] [blame]
/*
* Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// Oracle - initial API and implementation from Oracle TopLink
package org.eclipse.persistence.internal.eis.cobol;
/**
* <b>Purpose</b>: This interface defines behavior for a field meta data be they elementary or
* composite. This allows reference to either type field indiscriminatly. It also defines some
* statics for use in the type attribute of field meta data.
*/
public interface FieldMetaData {
//types
public static final int NUMERIC = 1;
public static final int ALPHA_NUMERIC = 2;
public static final int COMPOSITE = 3;
public static final int ALPHABETIC = 4;
public static final int BINARY = 5;
public static final int MANTISSA = 6;
public static final int PACKED_DECIMAL = 7;
public static final int VOID = 0;
/** this method returns an new instance with the same values */
public FieldMetaData deepCopy();
/** this method returns true if the field is signed */
public boolean isSigned();
/** this method sets the signed attribute for the field */
public void setIsSigned(boolean signed);
/** this method will return the name of the field */
public String getName();
/** this method will set the name of the field */
public void setName(String newName);
/** this method will return the associated record */
public RecordMetaData getRecord();
/** this method will set the assoicated record */
public void setRecord(RecordMetaData newRecord);
/** this method will return the size in bytes of the field */
public int getSize();
/** this method will set the size of the field */
public void setSize(int size);
/** this method returns true if the field is composite, false otherwise */
public boolean isComposite();
/** this method returns the offset, in bytes, of the field in the record */
public int getOffset();
/** this method sets the offset of the field */
public void setOffset(int offset);
/** this method returns the type of the field */
public int getType();
/** this method sets the type of the field */
public void setType(int type);
/** this method sets whether this is a field redefine or not */
public boolean isFieldRedefine();
/** this method sets the boolean for field redefine to true */
public void setIsFieldRedefine(boolean status);
/** this method sets the redefined field */
public void setFieldRedefined(FieldMetaData field);
/** this method returns the field that is redefined */
public FieldMetaData getFieldRedefined();
/** this method returns true is the field has a preset decimal position */
public boolean hasDecimal();
/** this method returns the decimal position index */
public int getDecimalPosition();
/** this method sets the decimal position to the new index */
public void setDecimalPosition(int newPosition);
/** this method returns true if this field is an array */
public boolean isArray();
/** this method returns the array size */
public int getArraySize();
/** this method sets the array size for the field */
public void setArraySize(int newSize);
/** this method returns true if the array size depends on another field */
public boolean dependsOn();
/** this method returns the name of the dependent field name */
public String getDependentFieldName();
/** this method sets the dependent field name */
public void setDependentFieldName(String fieldName);
/** this method will extract the field's value from a byte array */
public Object extractValueFromArray(byte[] recordData);
/** this method will write itself on the give row extracting the data from the given
byte array */
public void writeOnRow(CobolRow row, byte[] recordData);
/** this method will write itself on the given byte array from the data in the row */
public void writeOnArray(CobolRow row, byte[] recordData);
}