class ObjectMergeFunction extends Scalar<Map<String, Object>, Map<String, Object>> {

    public ObjectMergeFunction(Signature signature, BoundSignature boundSignature) {
        super(signature, boundSignature);
    }

    @SafeVarargs
    @Override
    public final Map<String, Object> evaluate(TransactionContext txnCtx, NodeContext nodeCtx, Input<Map<String, Object>>... args) {<FILL_FUNCTION_BODY>}
}

        var objectOne = args[0].value();
        var objectTwo = args[1].value();
        if (objectOne == null) {
            return objectTwo;
        }
        if (objectTwo == null) {
            return objectOne;
        }
        Map<String,Object> resultObject = new HashMap<>();
        resultObject.putAll(objectOne);
        resultObject.putAll(objectTwo);
        return resultObject;
    
<methods>public BoundSignature boundSignature() ,public Scalar<Map<java.lang.String,java.lang.Object>,Map<java.lang.String,java.lang.Object>> compile(List<io.crate.expression.symbol.Symbol>, java.lang.String, io.crate.role.Roles) ,public transient abstract Map<java.lang.String,java.lang.Object> evaluate(io.crate.metadata.TransactionContext, io.crate.metadata.NodeContext, Input<Map<java.lang.String,java.lang.Object>>[]) ,public io.crate.expression.symbol.Symbol normalizeSymbol(io.crate.expression.symbol.Function, io.crate.metadata.TransactionContext, io.crate.metadata.NodeContext) ,public io.crate.metadata.functions.Signature signature() <variables>public static final Set<io.crate.metadata.Scalar.Feature> DETERMINISTIC_AND_COMPARISON_REPLACEMENT,public static final Set<io.crate.metadata.Scalar.Feature> DETERMINISTIC_ONLY,public static final Set<io.crate.metadata.Scalar.Feature> NO_FEATURES,protected final non-sealed BoundSignature boundSignature,protected final non-sealed io.crate.metadata.functions.Signature signature