private ExecutableAnimation parseAnimationObjectHelper(ReadableArray array, int index,
                                                     ExecutionType executionType) {
        switch(array.getType(index)) {
            case Array:
                return parseAnimationObject(array.getArray(index), executionType);
            case Map:
                return parseAnimationObject(array.getMap(index), executionType);
            case String:
                return parseAnimationObject(array.getString(index), executionType);
            default:
                ViroLog.error(TAG, "Invalid animation object received of type: ["
                        + array.getType(index) + "]");
                return null;
        }
    }
This function helps us branch between the 3 different animation object types

@param array - the array of animation objects
@param index - the index of the animation object to parse
@param executionType - the execution type
@return the parsed animation
android/viro_bridge/src/main/java/com/viromedia/bridge/module/AnimationManager.java