class DelegateExecutionImpl implements BuildingBlockExecution, Serializable {

    @JsonIgnore
    @Override
    public GeneralBuildingBlock getGeneralBuildingBlock() {
        try {
            final GeneralBuildingBlock generalBuildingBlock = (GeneralBuildingBlock) execution.getVariable("gBBInput");

            if (generalBuildingBlock == null) {
                throw new MissingBuildingBlockInputException(MISSING_MSG);
            }

            return generalBuildingBlock;
        } catch (final ClassCastException e) {
            throw new MalformedBuildingBlockInputException(MALFORMED_MSG, e);
        }
    }

    public  DelegateExecutionImpl(final Map<String, Serializable> seedMap);
    public  DelegateExecutionImpl(final DelegateExecution execution);

}