001/******************************************************************************* 002 * Copyright (c) 2017 Red Hat Inc 003 * All rights reserved. This program and the accompanying materials 004 * are made available under the terms of the Eclipse Public License v1.0 005 * which accompanies this distribution, and is available at 006 * http://www.eclipse.org/legal/epl-v10.html 007 * 008 * Contributors: 009 * Jens Reimann - initial API and implementation 010 *******************************************************************************/ 011package de.dentrassi.varlink.spi; 012 013import static java.util.Collections.emptyMap; 014import static java.util.Collections.unmodifiableMap; 015import static java.util.Objects.requireNonNull; 016 017import java.util.HashMap; 018import java.util.Map; 019 020public final class CallRequest { 021 private final String method; 022 private final Map<String, Object> parameters; 023 024 private CallRequest(final String method, final Map<String, Object> parameters) { 025 this.method = method; 026 this.parameters = parameters; 027 } 028 029 public String getMethod() { 030 return this.method; 031 } 032 033 public Map<String, Object> getParameters() { 034 return this.parameters; 035 } 036 037 public static CallRequest of(final String method, final Map<String, ?> parameters) { 038 039 requireNonNull(method); 040 requireNonNull(parameters); 041 042 return new CallRequest(method, unmodifiableMap(new HashMap<>(parameters))); 043 } 044 045 public static CallRequest of(final String method) { 046 047 requireNonNull(method); 048 049 return new CallRequest(method, emptyMap()); 050 } 051}