// Path: fixb/src/main/java/org/fixb/FixException.java
// public class FixException extends RuntimeException {
//     private static final long serialVersionUID = 1;
// 
//     /**
//      * @param tag the field tag that has not been found
//      * @param fixMessage the FIX message that does not contain the tag
//      * @return an instance of FixException for a field-not-found case.
//      */
//     public static FixException fieldNotFound(int tag, String fixMessage) {
//         return new FixException("Field [" + tag + "] was not found in message: " + fixMessage);
//     }
// 
//     /**
//      * @param message the exception message
//      * @param cause the exception cause
//      */
//     public FixException(final String message, final Throwable cause) {
//         super(message, cause);
//     }
// 
//     /**
//      * @param cause the exception cause
//      */
//     public FixException(final Throwable cause) {
//         super(cause.getMessage(), cause);
//     }
// 
//     /**
//      * @param message the exception message
//      */
//     public FixException(final String message) {
//         super(message);
//     }
// }


import org.fixb.FixException;
import java.lang.reflect.Field;
    }

    /**
     * @return the type of this field's value
     */
    public Class<?> getType() {
        return type;
    }

    /**
     * @return false.
     */
    public boolean isGroup() {
        return false;
    }

    /**
     * Resolves the field's value using the given object.
     *
     * @param o the object containing the field's value
     * @return this field's value from the given object.
     */
    public Object getValue(Object o) {
        try {
            Object value = o;
            for (Field f : path) {
                value = f.get(value);
            }
            return value;
        } catch (IllegalAccessException e) {
// Path: fixb/src/main/java/org/fixb/FixException.java
// public class FixException extends RuntimeException {
//     private static final long serialVersionUID = 1;
// 
//     /**
//      * @param tag the field tag that has not been found
//      * @param fixMessage the FIX message that does not contain the tag
//      * @return an instance of FixException for a field-not-found case.
//      */
//     public static FixException fieldNotFound(int tag, String fixMessage) {
//         return new FixException("Field [" + tag + "] was not found in message: " + fixMessage);
//     }
// 
//     /**
//      * @param message the exception message
//      * @param cause the exception cause
//      */
//     public FixException(final String message, final Throwable cause) {
//         super(message, cause);
//     }
// 
//     /**
//      * @param cause the exception cause
//      */
//     public FixException(final Throwable cause) {
//         super(cause.getMessage(), cause);
//     }
// 
//     /**
//      * @param message the exception message
//      */
//     public FixException(final String message) {
//         super(message);
//     }
// }


// Path: fixb/src/main/java/org/fixb/meta/FixDynamicFieldMeta.java
import org.fixb.FixException;
import java.lang.reflect.Field;

    }

    /**
     * @return the type of this field's value
     */
    public Class<?> getType() {
        return type;
    }

    /**
     * @return false.
     */
    public boolean isGroup() {
        return false;
    }

    /**
     * Resolves the field's value using the given object.
     *
     * @param o the object containing the field's value
     * @return this field's value from the given object.
     */
    public Object getValue(Object o) {
        try {
            Object value = o;
            for (Field f : path) {
                value = f.get(value);
            }
            return value;
        } catch (IllegalAccessException e) {
            throw new FixException("Error while reading tag from path: " + getPathString(), e);